Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
glslang
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
glslang
Commits
b5e739c2
Commit
b5e739c2
authored
Apr 11, 2017
by
John Kessenich
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
HLSL: Fix boolean conversion bug and add more tests for ?:.
Null-conversion needs the right sized vectors to kick out with matching types.
parent
636b62db
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
626 additions
and
472 deletions
+626
-472
hlsl.conditional.frag.out
Test/baseResults/hlsl.conditional.frag.out
+615
-468
hlsl.conditional.frag
Test/hlsl.conditional.frag
+9
-2
revision.h
glslang/Include/revision.h
+1
-1
hlslParseHelper.cpp
hlsl/hlslParseHelper.cpp
+1
-1
No files found.
Test/baseResults/hlsl.conditional.frag.out
View file @
b5e739c2
...
...
@@ -5,154 +5,200 @@ gl_FragCoord origin is upper left
0:8 Function Definition: vectorCond( ( temp 4-component vector of float)
0:8 Function Parameters:
0:? Sequence
0:10 Branch: Return with expression
0:9 add ( temp 4-component vector of float)
0:9 mix ( temp 4-component vector of float)
0:9 f4: direct index for structure ( uniform 4-component vector of float)
0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:9 Constant:
0:9 2 (const uint)
0:9 t4: direct index for structure ( uniform 4-component vector of float)
0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:9 Constant:
0:9 1 (const uint)
0:9 Convert float to bool ( temp 4-component vector of bool)
0:9 c4: direct index for structure ( uniform 4-component vector of float)
0:11 Branch: Return with expression
0:10 add ( temp 4-component vector of float)
0:9 add ( temp 4-component vector of float)
0:9 mix ( temp 4-component vector of float)
0:9 f4: direct index for structure ( uniform 4-component vector of float)
0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:9 Constant:
0:9 0 (const uint)
0:10 mix ( temp 4-component vector of float)
0:10 Construct vec4 ( temp 4-component vector of float)
0:10 f: direct index for structure ( uniform float)
0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:10 Constant:
0:10 4 (const uint)
0:10 Construct vec4 ( temp 4-component vector of float)
0:10 t: direct index for structure ( uniform float)
0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:10 Constant:
0:10 3 (const uint)
0:10 Convert float to bool ( temp 4-component vector of bool)
0:10 c4: direct index for structure ( uniform 4-component vector of float)
0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:10 Constant:
0:10 0 (const uint)
0:14 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:14 Function Parameters:
0:14 'input' ( in 4-component vector of float)
0:9 2 (const uint)
0:9 t4: direct index for structure ( uniform 4-component vector of float)
0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:9 Constant:
0:9 1 (const uint)
0:9 Convert float to bool ( temp 4-component vector of bool)
0:9 c4: direct index for structure ( uniform 4-component vector of float)
0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:9 Constant:
0:9 0 (const uint)
0:10 mix ( temp 4-component vector of float)
0:10 Construct vec4 ( temp 4-component vector of float)
0:10 f: direct index for structure ( uniform float)
0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:10 Constant:
0:10 4 (const uint)
0:10 Construct vec4 ( temp 4-component vector of float)
0:10 t: direct index for structure ( uniform float)
0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:10 Constant:
0:10 3 (const uint)
0:10 Convert float to bool ( temp 4-component vector of bool)
0:10 c4: direct index for structure ( uniform 4-component vector of float)
0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:10 Constant:
0:10 0 (const uint)
0:11 mix ( temp 4-component vector of float)
0:11 f4: direct index for structure ( uniform 4-component vector of float)
0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:11 Constant:
0:11 2 (const uint)
0:11 t4: direct index for structure ( uniform 4-component vector of float)
0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:11 Constant:
0:11 1 (const uint)
0:11 Compare Less Than ( temp 4-component vector of bool)
0:11 t4: direct index for structure ( uniform 4-component vector of float)
0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:11 Constant:
0:11 1 (const uint)
0:11 f4: direct index for structure ( uniform 4-component vector of float)
0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:11 Constant:
0:11 2 (const uint)
0:15 Function Definition: fbSelect(vb2;vf2;vf2; ( temp 2-component vector of float)
0:15 Function Parameters:
0:15 'cnd' ( in 2-component vector of bool)
0:15 'src0' ( in 2-component vector of float)
0:15 'src1' ( in 2-component vector of float)
0:? Sequence
0:15 Sequence
0:15 move second child to first child ( temp int)
0:15 'a' ( temp int)
0:15 Constant:
0:15 5 (const int)
0:16 Sequence
0:16 move second child to first child ( temp int)
0:16 'b' ( temp int)
0:16 Constant:
0:16 6 (const int)
0:17 Sequence
0:17 move second child to first child ( temp int)
0:17 'c' ( temp int)
0:17 Constant:
0:17 7 (const int)
0:18 Sequence
0:18 move second child to first child ( temp int)
0:18 'd' ( temp int)
0:18 Constant:
0:18 7 (const int)
0:19 Sequence
0:19 move second child to first child ( temp 4-component vector of float)
0:19 'ret' ( temp 4-component vector of float)
0:21 add ( temp 4-component vector of float)
0:20 add ( temp 4-component vector of float)
0:19 add ( temp 4-component vector of float)
0:19 vector-scale ( temp 4-component vector of float)
0:19 Convert int to float ( temp float)
0:19 'a' ( temp int)
0:19 'input' ( in 4-component vector of float)
0:20 vector-scale ( temp 4-component vector of float)
0:20 Convert int to float ( temp float)
0:20 'b' ( temp int)
0:20 'input' ( in 4-component vector of float)
0:21 vector-scale ( temp 4-component vector of float)
0:21 Convert int to float ( temp float)
0:21 'c' ( temp int)
0:21 'input' ( in 4-component vector of float)
0:22 vector-scale ( temp 4-component vector of float)
0:22 Convert int to float ( temp float)
0:22 'd' ( temp int)
0:22 'input' ( in 4-component vector of float)
0:24 Comma ( temp int)
0:24 move second child to first child ( temp int)
0:24 'e' ( temp int)
0:24 move second child to first child ( temp int)
0:24 'a' ( temp int)
0:24 Test condition and select ( temp int)
0:24 Condition
0:24 Convert int to bool ( temp bool)
0:24 'b' ( temp int)
0:24 true case
0:24 move second child to first child ( temp int)
0:24 'c' ( temp int)
0:24 'd' ( temp int)
0:24 false case
0:24 Constant:
0:24 10 (const int)
0:16 Branch: Return with expression
0:16 mix ( temp 2-component vector of float)
0:16 'src1' ( in 2-component vector of float)
0:16 'src0' ( in 2-component vector of float)
0:16 'cnd' ( in 2-component vector of bool)
0:20 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:20 Function Parameters:
0:20 'input' ( in 4-component vector of float)
0:? Sequence
0:21 Sequence
0:21 move second child to first child ( temp int)
0:21 'a' ( temp int)
0:21 Constant:
0:21 5 (const int)
0:22 Sequence
0:22 move second child to first child ( temp int)
0:22 'b' ( temp int)
0:22 Constant:
0:22 6 (const int)
0:23 Sequence
0:23 move second child to first child ( temp int)
0:23 'c' ( temp int)
0:23 Constant:
0:23 7 (const int)
0:24 Sequence
0:24 move second child to first child ( temp int)
0:24 'b' ( temp int)
0:24 Test condition and select ( temp int)
0:24 Condition
0:24 Convert int to bool ( temp bool)
0:24 'a' ( temp int)
0:24 true case
0:24 move second child to first child ( temp int)
0:24 'd' ( temp int)
0:24 'c' ( temp int)
0:24 false case
0:24 Constant:
0:24 11 (const int)
0:26 move second child to first child ( temp 4-component vector of float)
0:26 'f' ( temp 4-component vector of float)
0:26 Test condition and select ( temp 4-component vector of float)
0:26 Condition
0:26 Compare Less Than ( temp bool)
0:26 direct index ( temp float)
0:26 'ret' ( temp 4-component vector of float)
0:26 Constant:
0:26 0 (const int)
0:26 direct index ( temp float)
0:26 'input' ( in 4-component vector of float)
0:26 Constant:
0:26 1 (const int)
0:26 true case
0:26 vector-scale ( temp 4-component vector of float)
0:26 Convert int to float ( temp float)
0:26 'c' ( temp int)
0:26 'input' ( in 4-component vector of float)
0:26 false case
0:26 vector-scale ( temp 4-component vector of float)
0:26 Convert int to float ( temp float)
0:26 'd' ( temp int)
0:26 'input' ( in 4-component vector of float)
0:27 Branch: Return with expression
0:27 add ( temp 4-component vector of float)
0:24 'd' ( temp int)
0:24 Constant:
0:24 7 (const int)
0:25 Sequence
0:25 move second child to first child ( temp 4-component vector of float)
0:25 'ret' ( temp 4-component vector of float)
0:27 add ( temp 4-component vector of float)
0:27 vector-scale ( temp 4-component vector of float)
0:27 Convert int to float ( temp float)
0:27 'e' ( temp int)
0:27 'ret' ( temp 4-component vector of float)
0:27 'f' ( temp 4-component vector of float)
0:27 Function Call: vectorCond( ( temp 4-component vector of float)
0:14 Function Definition: PixelShaderFunction( ( temp void)
0:14 Function Parameters:
0:26 add ( temp 4-component vector of float)
0:25 add ( temp 4-component vector of float)
0:25 vector-scale ( temp 4-component vector of float)
0:25 Convert int to float ( temp float)
0:25 'a' ( temp int)
0:25 'input' ( in 4-component vector of float)
0:26 vector-scale ( temp 4-component vector of float)
0:26 Convert int to float ( temp float)
0:26 'b' ( temp int)
0:26 'input' ( in 4-component vector of float)
0:27 vector-scale ( temp 4-component vector of float)
0:27 Convert int to float ( temp float)
0:27 'c' ( temp int)
0:27 'input' ( in 4-component vector of float)
0:28 vector-scale ( temp 4-component vector of float)
0:28 Convert int to float ( temp float)
0:28 'd' ( temp int)
0:28 'input' ( in 4-component vector of float)
0:30 Comma ( temp int)
0:30 move second child to first child ( temp int)
0:30 'e' ( temp int)
0:30 move second child to first child ( temp int)
0:30 'a' ( temp int)
0:30 Test condition and select ( temp int)
0:30 Condition
0:30 Convert int to bool ( temp bool)
0:30 'b' ( temp int)
0:30 true case
0:30 move second child to first child ( temp int)
0:30 'c' ( temp int)
0:30 'd' ( temp int)
0:30 false case
0:30 Constant:
0:30 10 (const int)
0:30 move second child to first child ( temp int)
0:30 'b' ( temp int)
0:30 Test condition and select ( temp int)
0:30 Condition
0:30 Convert int to bool ( temp bool)
0:30 'a' ( temp int)
0:30 true case
0:30 move second child to first child ( temp int)
0:30 'd' ( temp int)
0:30 'c' ( temp int)
0:30 false case
0:30 Constant:
0:30 11 (const int)
0:32 move second child to first child ( temp 4-component vector of float)
0:32 'f' ( temp 4-component vector of float)
0:32 Test condition and select ( temp 4-component vector of float)
0:32 Condition
0:32 Compare Less Than ( temp bool)
0:32 direct index ( temp float)
0:32 'ret' ( temp 4-component vector of float)
0:32 Constant:
0:32 0 (const int)
0:32 direct index ( temp float)
0:32 'input' ( in 4-component vector of float)
0:32 Constant:
0:32 1 (const int)
0:32 true case
0:32 vector-scale ( temp 4-component vector of float)
0:32 Convert int to float ( temp float)
0:32 'c' ( temp int)
0:32 'input' ( in 4-component vector of float)
0:32 false case
0:32 vector-scale ( temp 4-component vector of float)
0:32 Convert int to float ( temp float)
0:32 'd' ( temp int)
0:32 'input' ( in 4-component vector of float)
0:34 Branch: Return with expression
0:33 add ( temp 4-component vector of float)
0:33 add ( temp 4-component vector of float)
0:33 add ( temp 4-component vector of float)
0:33 vector-scale ( temp 4-component vector of float)
0:33 Convert int to float ( temp float)
0:33 'e' ( temp int)
0:33 'ret' ( temp 4-component vector of float)
0:33 'f' ( temp 4-component vector of float)
0:33 Function Call: vectorCond( ( temp 4-component vector of float)
0:? Construct vec4 ( temp 4-component vector of float)
0:34 Function Call: fbSelect(vb2;vf2;vf2; ( temp 2-component vector of float)
0:? Constant:
0:? true (const bool)
0:? false (const bool)
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? Constant:
0:? 3.000000
0:? 4.000000
0:34 Constant:
0:34 10.000000
0:34 Constant:
0:34 10.000000
0:20 Function Definition: PixelShaderFunction( ( temp void)
0:20 Function Parameters:
0:? Sequence
0:
14
move second child to first child ( temp 4-component vector of float)
0:
20
move second child to first child ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? 'input' (layout( location=0) in 4-component vector of float)
0:
14
move second child to first child ( temp 4-component vector of float)
0:
20
move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:
14
Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:
20
Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? Linker Objects
0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
...
...
@@ -169,154 +215,200 @@ gl_FragCoord origin is upper left
0:8 Function Definition: vectorCond( ( temp 4-component vector of float)
0:8 Function Parameters:
0:? Sequence
0:10 Branch: Return with expression
0:9 add ( temp 4-component vector of float)
0:9 mix ( temp 4-component vector of float)
0:9 f4: direct index for structure ( uniform 4-component vector of float)
0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:9 Constant:
0:9 2 (const uint)
0:9 t4: direct index for structure ( uniform 4-component vector of float)
0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:9 Constant:
0:9 1 (const uint)
0:9 Convert float to bool ( temp 4-component vector of bool)
0:9 c4: direct index for structure ( uniform 4-component vector of float)
0:11 Branch: Return with expression
0:10 add ( temp 4-component vector of float)
0:9 add ( temp 4-component vector of float)
0:9 mix ( temp 4-component vector of float)
0:9 f4: direct index for structure ( uniform 4-component vector of float)
0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:9 Constant:
0:9 0 (const uint)
0:10 mix ( temp 4-component vector of float)
0:10 Construct vec4 ( temp 4-component vector of float)
0:10 f: direct index for structure ( uniform float)
0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:10 Constant:
0:10 4 (const uint)
0:10 Construct vec4 ( temp 4-component vector of float)
0:10 t: direct index for structure ( uniform float)
0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:10 Constant:
0:10 3 (const uint)
0:10 Convert float to bool ( temp 4-component vector of bool)
0:10 c4: direct index for structure ( uniform 4-component vector of float)
0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:10 Constant:
0:10 0 (const uint)
0:14 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:14 Function Parameters:
0:14 'input' ( in 4-component vector of float)
0:9 2 (const uint)
0:9 t4: direct index for structure ( uniform 4-component vector of float)
0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:9 Constant:
0:9 1 (const uint)
0:9 Convert float to bool ( temp 4-component vector of bool)
0:9 c4: direct index for structure ( uniform 4-component vector of float)
0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:9 Constant:
0:9 0 (const uint)
0:10 mix ( temp 4-component vector of float)
0:10 Construct vec4 ( temp 4-component vector of float)
0:10 f: direct index for structure ( uniform float)
0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:10 Constant:
0:10 4 (const uint)
0:10 Construct vec4 ( temp 4-component vector of float)
0:10 t: direct index for structure ( uniform float)
0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:10 Constant:
0:10 3 (const uint)
0:10 Convert float to bool ( temp 4-component vector of bool)
0:10 c4: direct index for structure ( uniform 4-component vector of float)
0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:10 Constant:
0:10 0 (const uint)
0:11 mix ( temp 4-component vector of float)
0:11 f4: direct index for structure ( uniform 4-component vector of float)
0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:11 Constant:
0:11 2 (const uint)
0:11 t4: direct index for structure ( uniform 4-component vector of float)
0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:11 Constant:
0:11 1 (const uint)
0:11 Compare Less Than ( temp 4-component vector of bool)
0:11 t4: direct index for structure ( uniform 4-component vector of float)
0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:11 Constant:
0:11 1 (const uint)
0:11 f4: direct index for structure ( uniform 4-component vector of float)
0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:11 Constant:
0:11 2 (const uint)
0:15 Function Definition: fbSelect(vb2;vf2;vf2; ( temp 2-component vector of float)
0:15 Function Parameters:
0:15 'cnd' ( in 2-component vector of bool)
0:15 'src0' ( in 2-component vector of float)
0:15 'src1' ( in 2-component vector of float)
0:? Sequence
0:15 Sequence
0:15 move second child to first child ( temp int)
0:15 'a' ( temp int)
0:15 Constant:
0:15 5 (const int)
0:16 Sequence
0:16 move second child to first child ( temp int)
0:16 'b' ( temp int)
0:16 Constant:
0:16 6 (const int)
0:17 Sequence
0:17 move second child to first child ( temp int)
0:17 'c' ( temp int)
0:17 Constant:
0:17 7 (const int)
0:18 Sequence
0:18 move second child to first child ( temp int)
0:18 'd' ( temp int)
0:18 Constant:
0:18 7 (const int)
0:19 Sequence
0:19 move second child to first child ( temp 4-component vector of float)
0:19 'ret' ( temp 4-component vector of float)
0:21 add ( temp 4-component vector of float)
0:20 add ( temp 4-component vector of float)
0:19 add ( temp 4-component vector of float)
0:19 vector-scale ( temp 4-component vector of float)
0:19 Convert int to float ( temp float)
0:19 'a' ( temp int)
0:19 'input' ( in 4-component vector of float)
0:20 vector-scale ( temp 4-component vector of float)
0:20 Convert int to float ( temp float)
0:20 'b' ( temp int)
0:20 'input' ( in 4-component vector of float)
0:21 vector-scale ( temp 4-component vector of float)
0:21 Convert int to float ( temp float)
0:21 'c' ( temp int)
0:21 'input' ( in 4-component vector of float)
0:22 vector-scale ( temp 4-component vector of float)
0:22 Convert int to float ( temp float)
0:22 'd' ( temp int)
0:22 'input' ( in 4-component vector of float)
0:24 Comma ( temp int)
0:24 move second child to first child ( temp int)
0:24 'e' ( temp int)
0:24 move second child to first child ( temp int)
0:24 'a' ( temp int)
0:24 Test condition and select ( temp int)
0:24 Condition
0:24 Convert int to bool ( temp bool)
0:24 'b' ( temp int)
0:24 true case
0:24 move second child to first child ( temp int)
0:24 'c' ( temp int)
0:24 'd' ( temp int)
0:24 false case
0:24 Constant:
0:24 10 (const int)
0:16 Branch: Return with expression
0:16 mix ( temp 2-component vector of float)
0:16 'src1' ( in 2-component vector of float)
0:16 'src0' ( in 2-component vector of float)
0:16 'cnd' ( in 2-component vector of bool)
0:20 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:20 Function Parameters:
0:20 'input' ( in 4-component vector of float)
0:? Sequence
0:21 Sequence
0:21 move second child to first child ( temp int)
0:21 'a' ( temp int)
0:21 Constant:
0:21 5 (const int)
0:22 Sequence
0:22 move second child to first child ( temp int)
0:22 'b' ( temp int)
0:22 Constant:
0:22 6 (const int)
0:23 Sequence
0:23 move second child to first child ( temp int)
0:23 'c' ( temp int)
0:23 Constant:
0:23 7 (const int)
0:24 Sequence
0:24 move second child to first child ( temp int)
0:24 'b' ( temp int)
0:24 Test condition and select ( temp int)
0:24 Condition
0:24 Convert int to bool ( temp bool)
0:24 'a' ( temp int)
0:24 true case
0:24 move second child to first child ( temp int)
0:24 'd' ( temp int)
0:24 'c' ( temp int)
0:24 false case
0:24 Constant:
0:24 11 (const int)
0:26 move second child to first child ( temp 4-component vector of float)
0:26 'f' ( temp 4-component vector of float)
0:26 Test condition and select ( temp 4-component vector of float)
0:26 Condition
0:26 Compare Less Than ( temp bool)
0:26 direct index ( temp float)
0:26 'ret' ( temp 4-component vector of float)
0:26 Constant:
0:26 0 (const int)
0:26 direct index ( temp float)
0:26 'input' ( in 4-component vector of float)
0:26 Constant:
0:26 1 (const int)
0:26 true case
0:26 vector-scale ( temp 4-component vector of float)
0:26 Convert int to float ( temp float)
0:26 'c' ( temp int)
0:26 'input' ( in 4-component vector of float)
0:26 false case
0:26 vector-scale ( temp 4-component vector of float)
0:26 Convert int to float ( temp float)
0:26 'd' ( temp int)
0:26 'input' ( in 4-component vector of float)
0:27 Branch: Return with expression
0:27 add ( temp 4-component vector of float)
0:24 'd' ( temp int)
0:24 Constant:
0:24 7 (const int)
0:25 Sequence
0:25 move second child to first child ( temp 4-component vector of float)
0:25 'ret' ( temp 4-component vector of float)
0:27 add ( temp 4-component vector of float)
0:27 vector-scale ( temp 4-component vector of float)
0:27 Convert int to float ( temp float)
0:27 'e' ( temp int)
0:27 'ret' ( temp 4-component vector of float)
0:27 'f' ( temp 4-component vector of float)
0:27 Function Call: vectorCond( ( temp 4-component vector of float)
0:14 Function Definition: PixelShaderFunction( ( temp void)
0:14 Function Parameters:
0:26 add ( temp 4-component vector of float)
0:25 add ( temp 4-component vector of float)
0:25 vector-scale ( temp 4-component vector of float)
0:25 Convert int to float ( temp float)
0:25 'a' ( temp int)
0:25 'input' ( in 4-component vector of float)
0:26 vector-scale ( temp 4-component vector of float)
0:26 Convert int to float ( temp float)
0:26 'b' ( temp int)
0:26 'input' ( in 4-component vector of float)
0:27 vector-scale ( temp 4-component vector of float)
0:27 Convert int to float ( temp float)
0:27 'c' ( temp int)
0:27 'input' ( in 4-component vector of float)
0:28 vector-scale ( temp 4-component vector of float)
0:28 Convert int to float ( temp float)
0:28 'd' ( temp int)
0:28 'input' ( in 4-component vector of float)
0:30 Comma ( temp int)
0:30 move second child to first child ( temp int)
0:30 'e' ( temp int)
0:30 move second child to first child ( temp int)
0:30 'a' ( temp int)
0:30 Test condition and select ( temp int)
0:30 Condition
0:30 Convert int to bool ( temp bool)
0:30 'b' ( temp int)
0:30 true case
0:30 move second child to first child ( temp int)
0:30 'c' ( temp int)
0:30 'd' ( temp int)
0:30 false case
0:30 Constant:
0:30 10 (const int)
0:30 move second child to first child ( temp int)
0:30 'b' ( temp int)
0:30 Test condition and select ( temp int)
0:30 Condition
0:30 Convert int to bool ( temp bool)
0:30 'a' ( temp int)
0:30 true case
0:30 move second child to first child ( temp int)
0:30 'd' ( temp int)
0:30 'c' ( temp int)
0:30 false case
0:30 Constant:
0:30 11 (const int)
0:32 move second child to first child ( temp 4-component vector of float)
0:32 'f' ( temp 4-component vector of float)
0:32 Test condition and select ( temp 4-component vector of float)
0:32 Condition
0:32 Compare Less Than ( temp bool)
0:32 direct index ( temp float)
0:32 'ret' ( temp 4-component vector of float)
0:32 Constant:
0:32 0 (const int)
0:32 direct index ( temp float)
0:32 'input' ( in 4-component vector of float)
0:32 Constant:
0:32 1 (const int)
0:32 true case
0:32 vector-scale ( temp 4-component vector of float)
0:32 Convert int to float ( temp float)
0:32 'c' ( temp int)
0:32 'input' ( in 4-component vector of float)
0:32 false case
0:32 vector-scale ( temp 4-component vector of float)
0:32 Convert int to float ( temp float)
0:32 'd' ( temp int)
0:32 'input' ( in 4-component vector of float)
0:34 Branch: Return with expression
0:33 add ( temp 4-component vector of float)
0:33 add ( temp 4-component vector of float)
0:33 add ( temp 4-component vector of float)
0:33 vector-scale ( temp 4-component vector of float)
0:33 Convert int to float ( temp float)
0:33 'e' ( temp int)
0:33 'ret' ( temp 4-component vector of float)
0:33 'f' ( temp 4-component vector of float)
0:33 Function Call: vectorCond( ( temp 4-component vector of float)
0:? Construct vec4 ( temp 4-component vector of float)
0:34 Function Call: fbSelect(vb2;vf2;vf2; ( temp 2-component vector of float)
0:? Constant:
0:? true (const bool)
0:? false (const bool)
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? Constant:
0:? 3.000000
0:? 4.000000
0:34 Constant:
0:34 10.000000
0:34 Constant:
0:34 10.000000
0:20 Function Definition: PixelShaderFunction( ( temp void)
0:20 Function Parameters:
0:? Sequence
0:
14
move second child to first child ( temp 4-component vector of float)
0:
20
move second child to first child ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? 'input' (layout( location=0) in 4-component vector of float)
0:
14
move second child to first child ( temp 4-component vector of float)
0:
20
move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:
14
Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:
20
Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? Linker Objects
0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
...
...
@@ -325,215 +417,270 @@ gl_FragCoord origin is upper left
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 1
41
// Id's are bound by 1
86
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 1
34 137
EntryPoint Fragment 4 "PixelShaderFunction" 1
79 182
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "PixelShaderFunction"
Name 9 "vectorCond("
Name 14 "@PixelShaderFunction(vf4;"
Name 13 "input"
Name 16 "$Global"
MemberName 16($Global) 0 "c4"
MemberName 16($Global) 1 "t4"
MemberName 16($Global) 2 "f4"
MemberName 16($Global) 3 "t"
MemberName 16($Global) 4 "f"
Name 18 ""
Name 53 "a"
Name 55 "b"
Name 57 "c"
Name 59 "d"
Name 60 "ret"
Name 80 "e"
Name 101 "f"
Name 132 "input"
Name 134 "input"
Name 137 "@entryPointOutput"
Name 138 "param"
MemberDecorate 16($Global) 0 Offset 0
MemberDecorate 16($Global) 1 Offset 16
MemberDecorate 16($Global) 2 Offset 32
MemberDecorate 16($Global) 3 Offset 48
MemberDecorate 16($Global) 4 Offset 52
Decorate 16($Global) Block
Decorate 18 DescriptorSet 0
Decorate 134(input) Location 0
Decorate 137(@entryPointOutput) Location 0
Name 20 "fbSelect(vb2;vf2;vf2;"
Name 17 "cnd"
Name 18 "src0"
Name 19 "src1"
Name 25 "@PixelShaderFunction(vf4;"
Name 24 "input"
Name 27 "$Global"
MemberName 27($Global) 0 "c4"
MemberName 27($Global) 1 "t4"
MemberName 27($Global) 2 "f4"
MemberName 27($Global) 3 "t"
MemberName 27($Global) 4 "f"
Name 29 ""
Name 80 "a"
Name 82 "b"
Name 84 "c"
Name 86 "d"
Name 87 "ret"
Name 107 "e"
Name 128 "f"
Name 166 "param"
Name 167 "param"
Name 168 "param"
Name 177 "input"
Name 179 "input"
Name 182 "@entryPointOutput"
Name 183 "param"
MemberDecorate 27($Global) 0 Offset 0
MemberDecorate 27($Global) 1 Offset 16
MemberDecorate 27($Global) 2 Offset 32
MemberDecorate 27($Global) 3 Offset 48
MemberDecorate 27($Global) 4 Offset 52
Decorate 27($Global) Block
Decorate 29 DescriptorSet 0
Decorate 179(input) Location 0
Decorate 182(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeFunction 7(fvec4)
11: TypePointer Function 7(fvec4)
12: TypeFunction 7(fvec4) 11(ptr)
16($Global): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) 6(float) 6(float)
17: TypePointer Uniform 16($Global)
18: 17(ptr) Variable Uniform
19: TypeInt 32 1
20: 19(int) Constant 2
21: TypePointer Uniform 7(fvec4)
24: 19(int) Constant 1
27: 19(int) Constant 0
30: TypeBool
31: TypeVector 30(bool) 4
32: 6(float) Constant 0
33: 7(fvec4) ConstantComposite 32 32 32 32
36: 19(int) Constant 4
37: TypePointer Uniform 6(float)
41: 19(int) Constant 3
52: TypePointer Function 19(int)
54: 19(int) Constant 5
56: 19(int) Constant 6
58: 19(int) Constant 7
83: TypeInt 32 0
84: 83(int) Constant 0
90: 19(int) Constant 10
99: 19(int) Constant 11
103: TypePointer Function 6(float)
106: 83(int) Constant 1
133: TypePointer Input 7(fvec4)
134(input): 133(ptr) Variable Input
136: TypePointer Output 7(fvec4)
137(@entryPointOutput): 136(ptr) Variable Output
11: TypeBool
12: TypeVector 11(bool) 2
13: TypePointer Function 12(bvec2)
14: TypeVector 6(float) 2
15: TypePointer Function 14(fvec2)
16: TypeFunction 14(fvec2) 13(ptr) 15(ptr) 15(ptr)
22: TypePointer Function 7(fvec4)
23: TypeFunction 7(fvec4) 22(ptr)
27($Global): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) 6(float) 6(float)
28: TypePointer Uniform 27($Global)
29: 28(ptr) Variable Uniform
30: TypeInt 32 1
31: 30(int) Constant 2
32: TypePointer Uniform 7(fvec4)
35: 30(int) Constant 1
38: 30(int) Constant 0
41: TypeVector 11(bool) 4
42: 6(float) Constant 0
43: 7(fvec4) ConstantComposite 42 42 42 42
46: 30(int) Constant 4
47: TypePointer Uniform 6(float)
51: 30(int) Constant 3
79: TypePointer Function 30(int)
81: 30(int) Constant 5
83: 30(int) Constant 6
85: 30(int) Constant 7
110: TypeInt 32 0
111: 110(int) Constant 0
117: 30(int) Constant 10
126: 30(int) Constant 11
130: TypePointer Function 6(float)
133: 110(int) Constant 1
157: 11(bool) ConstantTrue
158: 11(bool) ConstantFalse
159: 12(bvec2) ConstantComposite 157 158
160: 6(float) Constant 1065353216
161: 6(float) Constant 1073741824
162: 14(fvec2) ConstantComposite 160 161
163: 6(float) Constant 1077936128
164: 6(float) Constant 1082130432
165: 14(fvec2) ConstantComposite 163 164
170: 6(float) Constant 1092616192
178: TypePointer Input 7(fvec4)
179(input): 178(ptr) Variable Input
181: TypePointer Output 7(fvec4)
182(@entryPointOutput): 181(ptr) Variable Output
4(PixelShaderFunction): 2 Function None 3
5: Label
1
32(input): 11
(ptr) Variable Function
1
38(param): 11
(ptr) Variable Function
1
35: 7(fvec4) Load 134
(input)
Store 1
32(input) 135
1
39: 7(fvec4) Load 132
(input)
Store 1
38(param) 139
1
40: 7(fvec4) FunctionCall 14(@PixelShaderFunction(vf4;) 138
(param)
Store 1
37(@entryPointOutput) 140
1
77(input): 22
(ptr) Variable Function
1
83(param): 22
(ptr) Variable Function
1
80: 7(fvec4) Load 179
(input)
Store 1
77(input) 180
1
84: 7(fvec4) Load 177
(input)
Store 1
83(param) 184
1
85: 7(fvec4) FunctionCall 25(@PixelShaderFunction(vf4;) 183
(param)
Store 1
82(@entryPointOutput) 185
Return
FunctionEnd
9(vectorCond(): 7(fvec4) Function None 8
10: Label
22: 21(ptr) AccessChain 18 20
23: 7(fvec4) Load 22
25: 21(ptr) AccessChain 18 24
26: 7(fvec4) Load 25
28: 21(ptr) AccessChain 18 27
29: 7(fvec4) Load 28
34: 31(bvec4) FOrdNotEqual 29 33
35: 7(fvec4) Select 34 26 23
38: 37(ptr) AccessChain 18 36
39: 6(float) Load 38
40: 7(fvec4) CompositeConstruct 39 39 39 39
42: 37(ptr) AccessChain 18 41
43: 6(float) Load 42
44: 7(fvec4) CompositeConstruct 43 43 43 43
45: 21(ptr) AccessChain 18 27
46: 7(fvec4) Load 45
47: 31(bvec4) FOrdNotEqual 46 33
48: 7(fvec4) Select 47 44 40
49: 7(fvec4) FAdd 35 48
ReturnValue 49
33: 32(ptr) AccessChain 29 31
34: 7(fvec4) Load 33
36: 32(ptr) AccessChain 29 35
37: 7(fvec4) Load 36
39: 32(ptr) AccessChain 29 38
40: 7(fvec4) Load 39
44: 41(bvec4) FOrdNotEqual 40 43
45: 7(fvec4) Select 44 37 34
48: 47(ptr) AccessChain 29 46
49: 6(float) Load 48
50: 7(fvec4) CompositeConstruct 49 49 49 49
52: 47(ptr) AccessChain 29 51
53: 6(float) Load 52
54: 7(fvec4) CompositeConstruct 53 53 53 53
55: 32(ptr) AccessChain 29 38
56: 7(fvec4) Load 55
57: 41(bvec4) FOrdNotEqual 56 43
58: 7(fvec4) Select 57 54 50
59: 7(fvec4) FAdd 45 58
60: 32(ptr) AccessChain 29 31
61: 7(fvec4) Load 60
62: 32(ptr) AccessChain 29 35
63: 7(fvec4) Load 62
64: 32(ptr) AccessChain 29 35
65: 7(fvec4) Load 64
66: 32(ptr) AccessChain 29 31
67: 7(fvec4) Load 66
68: 41(bvec4) FOrdLessThan 65 67
69: 7(fvec4) Select 68 63 61
70: 7(fvec4) FAdd 59 69
ReturnValue 70
FunctionEnd
20(fbSelect(vb2;vf2;vf2;): 14(fvec2) Function None 16
17(cnd): 13(ptr) FunctionParameter
18(src0): 15(ptr) FunctionParameter
19(src1): 15(ptr) FunctionParameter
21: Label
73: 14(fvec2) Load 19(src1)
74: 14(fvec2) Load 18(src0)
75: 12(bvec2) Load 17(cnd)
76: 14(fvec2) Select 75 74 73
ReturnValue 76
FunctionEnd
14(@PixelShaderFunction(vf4;): 7(fvec4) Function None 12
13(input): 11(ptr) FunctionParameter
15: Label
53(a): 52(ptr) Variable Function
55(b): 52(ptr) Variable Function
57(c): 52(ptr) Variable Function
59(d): 52(ptr) Variable Function
60(ret): 11(ptr) Variable Function
80(e): 52(ptr) Variable Function
81: 52(ptr) Variable Function
92: 52(ptr) Variable Function
101(f): 11(ptr) Variable Function
102: 11(ptr) Variable Function
Store 53(a) 54
Store 55(b) 56
Store 57(c) 58
Store 59(d) 58
61: 19(int) Load 53(a)
62: 6(float) ConvertSToF 61
63: 7(fvec4) Load 13(input)
64: 7(fvec4) VectorTimesScalar 63 62
65: 19(int) Load 55(b)
66: 6(float) ConvertSToF 65
67: 7(fvec4) Load 13(input)
68: 7(fvec4) VectorTimesScalar 67 66
69: 7(fvec4) FAdd 64 68
70: 19(int) Load 57(c)
71: 6(float) ConvertSToF 70
72: 7(fvec4) Load 13(input)
73: 7(fvec4) VectorTimesScalar 72 71
74: 7(fvec4) FAdd 69 73
75: 19(int) Load 59(d)
76: 6(float) ConvertSToF 75
77: 7(fvec4) Load 13(input)
78: 7(fvec4) VectorTimesScalar 77 76
79: 7(fvec4) FAdd 74 78
Store 60(ret) 79
82: 19(int) Load 55(b)
85: 30(bool) INotEqual 82 84
SelectionMerge 87 None
BranchConditional 85 86 89
86: Label
88: 19(int) Load 59(d)
Store 57(c) 88
Store 81 88
Branch 87
89: Label
Store 81 90
Branch 87
87: Label
91: 19(int) Load 81
Store 53(a) 91
Store 80(e) 91
93: 19(int) Load 53(a)
94: 30(bool) INotEqual 93 84
SelectionMerge 96 None
BranchConditional 94 95 98
95: Label
97: 19(int) Load 57(c)
Store 59(d) 97
Store 92 97
Branch 96
98: Label
Store 92 99
Branch 96
96: Label
100: 19(int) Load 92
Store 55(b) 100
104: 103(ptr) AccessChain 60(ret) 84
105: 6(float) Load 104
107: 103(ptr) AccessChain 13(input) 106
108: 6(float) Load 107
109: 30(bool) FOrdLessThan 105 108
SelectionMerge 111 None
BranchConditional 109 110 116
110: Label
112: 19(int) Load 57(c)
113: 6(float) ConvertSToF 112
114: 7(fvec4) Load 13(input)
115: 7(fvec4) VectorTimesScalar 114 113
Store 102 115
Branch 111
25(@PixelShaderFunction(vf4;): 7(fvec4) Function None 23
24(input): 22(ptr) FunctionParameter
26: Label
80(a): 79(ptr) Variable Function
82(b): 79(ptr) Variable Function
84(c): 79(ptr) Variable Function
86(d): 79(ptr) Variable Function
87(ret): 22(ptr) Variable Function
107(e): 79(ptr) Variable Function
108: 79(ptr) Variable Function
119: 79(ptr) Variable Function
128(f): 22(ptr) Variable Function
129: 22(ptr) Variable Function
166(param): 13(ptr) Variable Function
167(param): 15(ptr) Variable Function
168(param): 15(ptr) Variable Function
Store 80(a) 81
Store 82(b) 83
Store 84(c) 85
Store 86(d) 85
88: 30(int) Load 80(a)
89: 6(float) ConvertSToF 88
90: 7(fvec4) Load 24(input)
91: 7(fvec4) VectorTimesScalar 90 89
92: 30(int) Load 82(b)
93: 6(float) ConvertSToF 92
94: 7(fvec4) Load 24(input)
95: 7(fvec4) VectorTimesScalar 94 93
96: 7(fvec4) FAdd 91 95
97: 30(int) Load 84(c)
98: 6(float) ConvertSToF 97
99: 7(fvec4) Load 24(input)
100: 7(fvec4) VectorTimesScalar 99 98
101: 7(fvec4) FAdd 96 100
102: 30(int) Load 86(d)
103: 6(float) ConvertSToF 102
104: 7(fvec4) Load 24(input)
105: 7(fvec4) VectorTimesScalar 104 103
106: 7(fvec4) FAdd 101 105
Store 87(ret) 106
109: 30(int) Load 82(b)
112: 11(bool) INotEqual 109 111
SelectionMerge 114 None
BranchConditional 112 113 116
113: Label
115: 30(int) Load 86(d)
Store 84(c) 115
Store 108 115
Branch 114
116: Label
117: 19(int) Load 59(d)
118: 6(float) ConvertSToF 117
119: 7(fvec4) Load 13(input)
120: 7(fvec4) VectorTimesScalar 119 118
Store 102 120
Branch 111
111: Label
121: 7(fvec4) Load 102
Store 101(f) 121
122: 19(int) Load 80(e)
123: 6(float) ConvertSToF 122
124: 7(fvec4) Load 60(ret)
125: 7(fvec4) VectorTimesScalar 124 123
126: 7(fvec4) Load 101(f)
127: 7(fvec4) FAdd 125 126
128: 7(fvec4) FunctionCall 9(vectorCond()
129: 7(fvec4) FAdd 127 128
ReturnValue 129
Store 108 117
Branch 114
114: Label
118: 30(int) Load 108
Store 80(a) 118
Store 107(e) 118
120: 30(int) Load 80(a)
121: 11(bool) INotEqual 120 111
SelectionMerge 123 None
BranchConditional 121 122 125
122: Label
124: 30(int) Load 84(c)
Store 86(d) 124
Store 119 124
Branch 123
125: Label
Store 119 126
Branch 123
123: Label
127: 30(int) Load 119
Store 82(b) 127
131: 130(ptr) AccessChain 87(ret) 111
132: 6(float) Load 131
134: 130(ptr) AccessChain 24(input) 133
135: 6(float) Load 134
136: 11(bool) FOrdLessThan 132 135
SelectionMerge 138 None
BranchConditional 136 137 143
137: Label
139: 30(int) Load 84(c)
140: 6(float) ConvertSToF 139
141: 7(fvec4) Load 24(input)
142: 7(fvec4) VectorTimesScalar 141 140
Store 129 142
Branch 138
143: Label
144: 30(int) Load 86(d)
145: 6(float) ConvertSToF 144
146: 7(fvec4) Load 24(input)
147: 7(fvec4) VectorTimesScalar 146 145
Store 129 147
Branch 138
138: Label
148: 7(fvec4) Load 129
Store 128(f) 148
149: 30(int) Load 107(e)
150: 6(float) ConvertSToF 149
151: 7(fvec4) Load 87(ret)
152: 7(fvec4) VectorTimesScalar 151 150
153: 7(fvec4) Load 128(f)
154: 7(fvec4) FAdd 152 153
155: 7(fvec4) FunctionCall 9(vectorCond()
156: 7(fvec4) FAdd 154 155
Store 166(param) 159
Store 167(param) 162
Store 168(param) 165
169: 14(fvec2) FunctionCall 20(fbSelect(vb2;vf2;vf2;) 166(param) 167(param) 168(param)
171: 6(float) CompositeExtract 169 0
172: 6(float) CompositeExtract 169 1
173: 7(fvec4) CompositeConstruct 171 172 170 170
174: 7(fvec4) FAdd 156 173
ReturnValue 174
FunctionEnd
Test/hlsl.conditional.frag
View file @
b5e739c2
...
...
@@ -7,7 +7,13 @@ float f;
float4
vectorCond
()
{
return
(
c4
?
t4
:
f4
)
+
(
c4
?
t
:
f
);
(
c4
?
t
:
f
)
+
(
t4
<
f4
?
t4
:
f4
);
}
float2
fbSelect
(
bool2
cnd
,
float2
src0
,
float2
src1
)
{
return
cnd
?
src0
:
src1
;
}
float4
PixelShaderFunction
(
float4
input
)
:
COLOR0
...
...
@@ -24,5 +30,6 @@ float4 PixelShaderFunction(float4 input) : COLOR0
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
+
vectorCond
();
return
e
*
ret
+
f
+
vectorCond
()
+
float4
(
fbSelect
(
bool2
(
true
,
false
),
float2
(
1
.
0
,
2
.
0
),
float2
(
3
.
0
,
4
.
0
)),
10
.
0
,
10
.
0
);
}
glslang/Include/revision.h
View file @
b5e739c2
...
...
@@ -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.199
2
"
#define GLSLANG_REVISION "Overload400-PrecQual.199
4
"
#define GLSLANG_DATE "11-Apr-2017"
hlsl/hlslParseHelper.cpp
View file @
b5e739c2
...
...
@@ -4536,7 +4536,7 @@ TIntermTyped* HlslParseContext::convertConditionalExpression(const TSourceLoc& l
return
nullptr
;
}
return
intermediate
.
addConversion
(
EOpConstructBool
,
TType
(
EbtBool
),
condition
);
return
intermediate
.
addConversion
(
EOpConstructBool
,
TType
(
EbtBool
,
EvqTemporary
,
condition
->
getVectorSize
()
),
condition
);
}
//
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment