mirror of
https://github.com/RPCS3/glslang.git
synced 2024-11-24 03:39:51 +00:00
Merge pull request #2859 from ZhiqianXia/floatBitsToInt
Support the floatBitsToint function at GL_ARB_gpu_shader5 Extension.
This commit is contained in:
commit
c0a322f5f0
@ -8,7 +8,9 @@ ERROR: 0:53: 'double' : Reserved word.
|
||||
ERROR: 0:53: 'double' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:53: 'double' : must be qualified as flat in
|
||||
ERROR: 0:57: '=' : cannot convert from ' global double' to ' global int'
|
||||
ERROR: 0:80: 'floatBitsToInt' : required extension not requested: GL_ARB_shader_bit_encoding
|
||||
ERROR: 0:80: 'floatBitsToInt' : required extension not requested: Possible extensions include:
|
||||
GL_ARB_shader_bit_encoding
|
||||
GL_ARB_gpu_shader5
|
||||
ERROR: 0:100: 'packSnorm2x16' : required extension not requested: GL_ARB_shading_language_packing
|
||||
ERROR: 0:114: 'textureQueryLOD' : required extension not requested: GL_ARB_texture_query_lod
|
||||
ERROR: 0:115: 'textureQueryLOD' : required extension not requested: GL_ARB_texture_query_lod
|
||||
|
217
Test/baseResults/floatBitsToInt.vert.out
Normal file
217
Test/baseResults/floatBitsToInt.vert.out
Normal file
@ -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)
|
||||
|
18
Test/floatBitsToInt.vert
Normal file
18
Test/floatBitsToInt.vert
Normal file
@ -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;
|
||||
}
|
||||
}
|
@ -8353,10 +8353,11 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
||||
}
|
||||
|
||||
if (profile != EEsProfile && version < 330 ) {
|
||||
symbolTable.setFunctionExtensions("floatBitsToInt", 1, &E_GL_ARB_shader_bit_encoding);
|
||||
symbolTable.setFunctionExtensions("floatBitsToUint", 1, &E_GL_ARB_shader_bit_encoding);
|
||||
symbolTable.setFunctionExtensions("intBitsToFloat", 1, &E_GL_ARB_shader_bit_encoding);
|
||||
symbolTable.setFunctionExtensions("uintBitsToFloat", 1, &E_GL_ARB_shader_bit_encoding);
|
||||
const char* bitsConvertExt[2] = {E_GL_ARB_shader_bit_encoding, E_GL_ARB_gpu_shader5};
|
||||
symbolTable.setFunctionExtensions("floatBitsToInt", 2, bitsConvertExt);
|
||||
symbolTable.setFunctionExtensions("floatBitsToUint", 2, bitsConvertExt);
|
||||
symbolTable.setFunctionExtensions("intBitsToFloat", 2, bitsConvertExt);
|
||||
symbolTable.setFunctionExtensions("uintBitsToFloat", 2, bitsConvertExt);
|
||||
}
|
||||
|
||||
if (profile != EEsProfile && version < 430 ) {
|
||||
|
@ -292,6 +292,7 @@ INSTANTIATE_TEST_SUITE_P(
|
||||
"GL_ARB_draw_instanced.vert",
|
||||
"GL_ARB_fragment_coord_conventions.vert",
|
||||
"BestMatchFunction.vert",
|
||||
"floatBitsToInt.vert",
|
||||
})),
|
||||
FileNameAsCustomTestSuffix
|
||||
);
|
||||
|
Loading…
Reference in New Issue
Block a user