forked from KhronosGroup/glslang
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request KhronosGroup#2859 from ZhiqianXia/floatBitsToInt
Support the floatBitsToint function at GL_ARB_gpu_shader5 Extension.
- Loading branch information
Showing
5 changed files
with
244 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,217 @@ | ||
floatBitsToInt.vert | ||
WARNING: 0:2: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5 | ||
|
||
Shader version: 150 | ||
Requested GL_ARB_gpu_shader5 | ||
0:? Sequence | ||
0:6 Function Definition: main( ( global void) | ||
0:6 Function Parameters: | ||
0:8 Sequence | ||
0:8 move second child to first child ( temp 4-component vector of float) | ||
0:8 'result' ( smooth out 4-component vector of float) | ||
0:8 Constant: | ||
0:8 1.000000 | ||
0:8 1.000000 | ||
0:8 1.000000 | ||
0:8 1.000000 | ||
0:9 Sequence | ||
0:9 move second child to first child ( temp int) | ||
0:9 'ret_val' ( temp int) | ||
0:9 floatBitsToInt ( global int) | ||
0:9 'value' ( uniform float) | ||
0:10 Test condition and select ( temp void) | ||
0:10 Condition | ||
0:10 Compare Not Equal ( temp bool) | ||
0:10 'expected_value' ( uniform int) | ||
0:10 'ret_val' ( temp int) | ||
0:10 true case | ||
0:10 Sequence | ||
0:10 move second child to first child ( temp 4-component vector of float) | ||
0:10 'result' ( smooth out 4-component vector of float) | ||
0:10 Constant: | ||
0:10 0.000000 | ||
0:10 0.000000 | ||
0:10 0.000000 | ||
0:10 0.000000 | ||
0:12 switch | ||
0:12 condition | ||
0:12 'gl_VertexID' ( gl_VertexId int VertexId) | ||
0:12 body | ||
0:12 Sequence | ||
0:13 case: with expression | ||
0:13 Constant: | ||
0:13 0 (const int) | ||
0:? Sequence | ||
0:13 move second child to first child ( temp 4-component vector of float) | ||
0:13 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) | ||
0:13 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance}) | ||
0:13 Constant: | ||
0:13 0 (const uint) | ||
0:13 Constant: | ||
0:13 -1.000000 | ||
0:13 1.000000 | ||
0:13 0.000000 | ||
0:13 1.000000 | ||
0:13 Branch: Break | ||
0:14 case: with expression | ||
0:14 Constant: | ||
0:14 1 (const int) | ||
0:? Sequence | ||
0:14 move second child to first child ( temp 4-component vector of float) | ||
0:14 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) | ||
0:14 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance}) | ||
0:14 Constant: | ||
0:14 0 (const uint) | ||
0:14 Constant: | ||
0:14 1.000000 | ||
0:14 1.000000 | ||
0:14 0.000000 | ||
0:14 1.000000 | ||
0:14 Branch: Break | ||
0:15 case: with expression | ||
0:15 Constant: | ||
0:15 2 (const int) | ||
0:? Sequence | ||
0:15 move second child to first child ( temp 4-component vector of float) | ||
0:15 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) | ||
0:15 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance}) | ||
0:15 Constant: | ||
0:15 0 (const uint) | ||
0:15 Constant: | ||
0:15 -1.000000 | ||
0:15 -1.000000 | ||
0:15 0.000000 | ||
0:15 1.000000 | ||
0:15 Branch: Break | ||
0:16 case: with expression | ||
0:16 Constant: | ||
0:16 3 (const int) | ||
0:? Sequence | ||
0:16 move second child to first child ( temp 4-component vector of float) | ||
0:16 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) | ||
0:16 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance}) | ||
0:16 Constant: | ||
0:16 0 (const uint) | ||
0:16 Constant: | ||
0:16 1.000000 | ||
0:16 -1.000000 | ||
0:16 0.000000 | ||
0:16 1.000000 | ||
0:16 Branch: Break | ||
0:? Linker Objects | ||
0:? 'expected_value' ( uniform int) | ||
0:? 'value' ( uniform float) | ||
0:? 'result' ( smooth out 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 unsized 1-element array of float ClipDistance gl_ClipDistance}) | ||
0:? 'gl_VertexID' ( gl_VertexId int VertexId) | ||
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) | ||
|
||
|
||
Linked vertex stage: | ||
|
||
|
||
Shader version: 150 | ||
Requested GL_ARB_gpu_shader5 | ||
0:? Sequence | ||
0:6 Function Definition: main( ( global void) | ||
0:6 Function Parameters: | ||
0:8 Sequence | ||
0:8 move second child to first child ( temp 4-component vector of float) | ||
0:8 'result' ( smooth out 4-component vector of float) | ||
0:8 Constant: | ||
0:8 1.000000 | ||
0:8 1.000000 | ||
0:8 1.000000 | ||
0:8 1.000000 | ||
0:9 Sequence | ||
0:9 move second child to first child ( temp int) | ||
0:9 'ret_val' ( temp int) | ||
0:9 floatBitsToInt ( global int) | ||
0:9 'value' ( uniform float) | ||
0:10 Test condition and select ( temp void) | ||
0:10 Condition | ||
0:10 Compare Not Equal ( temp bool) | ||
0:10 'expected_value' ( uniform int) | ||
0:10 'ret_val' ( temp int) | ||
0:10 true case | ||
0:10 Sequence | ||
0:10 move second child to first child ( temp 4-component vector of float) | ||
0:10 'result' ( smooth out 4-component vector of float) | ||
0:10 Constant: | ||
0:10 0.000000 | ||
0:10 0.000000 | ||
0:10 0.000000 | ||
0:10 0.000000 | ||
0:12 switch | ||
0:12 condition | ||
0:12 'gl_VertexID' ( gl_VertexId int VertexId) | ||
0:12 body | ||
0:12 Sequence | ||
0:13 case: with expression | ||
0:13 Constant: | ||
0:13 0 (const int) | ||
0:? Sequence | ||
0:13 move second child to first child ( temp 4-component vector of float) | ||
0:13 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) | ||
0:13 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance}) | ||
0:13 Constant: | ||
0:13 0 (const uint) | ||
0:13 Constant: | ||
0:13 -1.000000 | ||
0:13 1.000000 | ||
0:13 0.000000 | ||
0:13 1.000000 | ||
0:13 Branch: Break | ||
0:14 case: with expression | ||
0:14 Constant: | ||
0:14 1 (const int) | ||
0:? Sequence | ||
0:14 move second child to first child ( temp 4-component vector of float) | ||
0:14 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) | ||
0:14 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance}) | ||
0:14 Constant: | ||
0:14 0 (const uint) | ||
0:14 Constant: | ||
0:14 1.000000 | ||
0:14 1.000000 | ||
0:14 0.000000 | ||
0:14 1.000000 | ||
0:14 Branch: Break | ||
0:15 case: with expression | ||
0:15 Constant: | ||
0:15 2 (const int) | ||
0:? Sequence | ||
0:15 move second child to first child ( temp 4-component vector of float) | ||
0:15 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) | ||
0:15 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance}) | ||
0:15 Constant: | ||
0:15 0 (const uint) | ||
0:15 Constant: | ||
0:15 -1.000000 | ||
0:15 -1.000000 | ||
0:15 0.000000 | ||
0:15 1.000000 | ||
0:15 Branch: Break | ||
0:16 case: with expression | ||
0:16 Constant: | ||
0:16 3 (const int) | ||
0:? Sequence | ||
0:16 move second child to first child ( temp 4-component vector of float) | ||
0:16 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) | ||
0:16 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance}) | ||
0:16 Constant: | ||
0:16 0 (const uint) | ||
0:16 Constant: | ||
0:16 1.000000 | ||
0:16 -1.000000 | ||
0:16 0.000000 | ||
0:16 1.000000 | ||
0:16 Branch: Break | ||
0:? Linker Objects | ||
0:? 'expected_value' ( uniform int) | ||
0:? 'value' ( uniform float) | ||
0:? 'result' ( smooth out 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 1-element array of float ClipDistance gl_ClipDistance}) | ||
0:? 'gl_VertexID' ( gl_VertexId int VertexId) | ||
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
#version 150 | ||
#extension GL_ARB_gpu_shader5 : require | ||
uniform int expected_value; | ||
uniform float value; | ||
out vec4 result; | ||
void main() | ||
{ | ||
result = vec4(1.0, 1.0, 1.0, 1.0); | ||
int ret_val = floatBitsToInt(value); | ||
if (expected_value != ret_val){ result = vec4(0.0, 0.0, 0.0, 0.0); } | ||
|
||
switch (gl_VertexID) { | ||
case 0: gl_Position = vec4(-1.0, 1.0, 0.0, 1.0); break; | ||
case 1: gl_Position = vec4( 1.0, 1.0, 0.0, 1.0); break; | ||
case 2: gl_Position = vec4(-1.0,-1.0, 0.0, 1.0); break; | ||
case 3: gl_Position = vec4( 1.0,-1.0, 0.0, 1.0); break; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters