Merge pull request #1457 from KhronosGroup/parse-floats
Tests: Add more string -> float tests. Related to #1456.
This commit is contained in:
commit
e99a26810f
@ -1,5 +1,6 @@
|
|||||||
stringToDouble.vert
|
stringToDouble.vert
|
||||||
Shader version: 460
|
Shader version: 460
|
||||||
|
Requested GL_KHX_shader_explicit_arithmetic_types_float16
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:3 Function Definition: main( ( global void)
|
0:3 Function Definition: main( ( global void)
|
||||||
0:3 Function Parameters:
|
0:3 Function Parameters:
|
||||||
@ -440,10 +441,80 @@ Shader version: 460
|
|||||||
0:95 Constant:
|
0:95 Constant:
|
||||||
0:95 5.7089907708238e+45
|
0:95 5.7089907708238e+45
|
||||||
0:97 Sequence
|
0:97 Sequence
|
||||||
0:97 move second child to first child ( temp double)
|
0:97 move second child to first child ( temp float)
|
||||||
0:97 'pi' ( temp double)
|
0:97 'pi1' ( temp float)
|
||||||
0:97 Constant:
|
0:97 Constant:
|
||||||
0:97 3.141593
|
0:97 3.141593
|
||||||
|
0:98 Sequence
|
||||||
|
0:98 move second child to first child ( temp float)
|
||||||
|
0:98 'pi2' ( temp float)
|
||||||
|
0:98 Constant:
|
||||||
|
0:98 3.141593
|
||||||
|
0:99 Sequence
|
||||||
|
0:99 move second child to first child ( temp float)
|
||||||
|
0:99 'pi3' ( temp float)
|
||||||
|
0:99 Constant:
|
||||||
|
0:99 3.141593
|
||||||
|
0:101 Sequence
|
||||||
|
0:101 move second child to first child ( temp double)
|
||||||
|
0:101 'dpi1' ( temp double)
|
||||||
|
0:101 Constant:
|
||||||
|
0:101 3.141593
|
||||||
|
0:102 Sequence
|
||||||
|
0:102 move second child to first child ( temp double)
|
||||||
|
0:102 'dpi2' ( temp double)
|
||||||
|
0:102 Constant:
|
||||||
|
0:102 3.141593
|
||||||
|
0:103 Sequence
|
||||||
|
0:103 move second child to first child ( temp double)
|
||||||
|
0:103 'dpi3' ( temp double)
|
||||||
|
0:103 Constant:
|
||||||
|
0:103 3.141593
|
||||||
|
0:105 Sequence
|
||||||
|
0:105 move second child to first child ( temp float)
|
||||||
|
0:105 'dfpi1' ( temp float)
|
||||||
|
0:105 Constant:
|
||||||
|
0:105 3.141593
|
||||||
|
0:106 Sequence
|
||||||
|
0:106 move second child to first child ( temp float)
|
||||||
|
0:106 'dfpi2' ( temp float)
|
||||||
|
0:106 Constant:
|
||||||
|
0:106 3.141593
|
||||||
|
0:107 Sequence
|
||||||
|
0:107 move second child to first child ( temp float)
|
||||||
|
0:107 'dfpi3' ( temp float)
|
||||||
|
0:107 Constant:
|
||||||
|
0:107 3.141593
|
||||||
|
0:109 Sequence
|
||||||
|
0:109 move second child to first child ( temp double)
|
||||||
|
0:109 'lfpi1' ( temp double)
|
||||||
|
0:109 Constant:
|
||||||
|
0:109 3.141593
|
||||||
|
0:110 Sequence
|
||||||
|
0:110 move second child to first child ( temp double)
|
||||||
|
0:110 'lfpi2' ( temp double)
|
||||||
|
0:110 Constant:
|
||||||
|
0:110 3.141593
|
||||||
|
0:111 Sequence
|
||||||
|
0:111 move second child to first child ( temp double)
|
||||||
|
0:111 'lfpi3' ( temp double)
|
||||||
|
0:111 Constant:
|
||||||
|
0:111 3.141593
|
||||||
|
0:113 Sequence
|
||||||
|
0:113 move second child to first child ( temp double)
|
||||||
|
0:113 'hfpi1' ( temp double)
|
||||||
|
0:113 Constant:
|
||||||
|
0:113 3.141593
|
||||||
|
0:114 Sequence
|
||||||
|
0:114 move second child to first child ( temp double)
|
||||||
|
0:114 'hfpi2' ( temp double)
|
||||||
|
0:114 Constant:
|
||||||
|
0:114 3.141593
|
||||||
|
0:115 Sequence
|
||||||
|
0:115 move second child to first child ( temp double)
|
||||||
|
0:115 'hfpi3' ( temp double)
|
||||||
|
0:115 Constant:
|
||||||
|
0:115 3.141593
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
|
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
|
||||||
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
|
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
|
||||||
@ -453,6 +524,7 @@ Linked vertex stage:
|
|||||||
|
|
||||||
|
|
||||||
Shader version: 460
|
Shader version: 460
|
||||||
|
Requested GL_KHX_shader_explicit_arithmetic_types_float16
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:3 Function Definition: main( ( global void)
|
0:3 Function Definition: main( ( global void)
|
||||||
0:3 Function Parameters:
|
0:3 Function Parameters:
|
||||||
@ -893,10 +965,80 @@ Shader version: 460
|
|||||||
0:95 Constant:
|
0:95 Constant:
|
||||||
0:95 5.7089907708238e+45
|
0:95 5.7089907708238e+45
|
||||||
0:97 Sequence
|
0:97 Sequence
|
||||||
0:97 move second child to first child ( temp double)
|
0:97 move second child to first child ( temp float)
|
||||||
0:97 'pi' ( temp double)
|
0:97 'pi1' ( temp float)
|
||||||
0:97 Constant:
|
0:97 Constant:
|
||||||
0:97 3.141593
|
0:97 3.141593
|
||||||
|
0:98 Sequence
|
||||||
|
0:98 move second child to first child ( temp float)
|
||||||
|
0:98 'pi2' ( temp float)
|
||||||
|
0:98 Constant:
|
||||||
|
0:98 3.141593
|
||||||
|
0:99 Sequence
|
||||||
|
0:99 move second child to first child ( temp float)
|
||||||
|
0:99 'pi3' ( temp float)
|
||||||
|
0:99 Constant:
|
||||||
|
0:99 3.141593
|
||||||
|
0:101 Sequence
|
||||||
|
0:101 move second child to first child ( temp double)
|
||||||
|
0:101 'dpi1' ( temp double)
|
||||||
|
0:101 Constant:
|
||||||
|
0:101 3.141593
|
||||||
|
0:102 Sequence
|
||||||
|
0:102 move second child to first child ( temp double)
|
||||||
|
0:102 'dpi2' ( temp double)
|
||||||
|
0:102 Constant:
|
||||||
|
0:102 3.141593
|
||||||
|
0:103 Sequence
|
||||||
|
0:103 move second child to first child ( temp double)
|
||||||
|
0:103 'dpi3' ( temp double)
|
||||||
|
0:103 Constant:
|
||||||
|
0:103 3.141593
|
||||||
|
0:105 Sequence
|
||||||
|
0:105 move second child to first child ( temp float)
|
||||||
|
0:105 'dfpi1' ( temp float)
|
||||||
|
0:105 Constant:
|
||||||
|
0:105 3.141593
|
||||||
|
0:106 Sequence
|
||||||
|
0:106 move second child to first child ( temp float)
|
||||||
|
0:106 'dfpi2' ( temp float)
|
||||||
|
0:106 Constant:
|
||||||
|
0:106 3.141593
|
||||||
|
0:107 Sequence
|
||||||
|
0:107 move second child to first child ( temp float)
|
||||||
|
0:107 'dfpi3' ( temp float)
|
||||||
|
0:107 Constant:
|
||||||
|
0:107 3.141593
|
||||||
|
0:109 Sequence
|
||||||
|
0:109 move second child to first child ( temp double)
|
||||||
|
0:109 'lfpi1' ( temp double)
|
||||||
|
0:109 Constant:
|
||||||
|
0:109 3.141593
|
||||||
|
0:110 Sequence
|
||||||
|
0:110 move second child to first child ( temp double)
|
||||||
|
0:110 'lfpi2' ( temp double)
|
||||||
|
0:110 Constant:
|
||||||
|
0:110 3.141593
|
||||||
|
0:111 Sequence
|
||||||
|
0:111 move second child to first child ( temp double)
|
||||||
|
0:111 'lfpi3' ( temp double)
|
||||||
|
0:111 Constant:
|
||||||
|
0:111 3.141593
|
||||||
|
0:113 Sequence
|
||||||
|
0:113 move second child to first child ( temp double)
|
||||||
|
0:113 'hfpi1' ( temp double)
|
||||||
|
0:113 Constant:
|
||||||
|
0:113 3.141593
|
||||||
|
0:114 Sequence
|
||||||
|
0:114 move second child to first child ( temp double)
|
||||||
|
0:114 'hfpi2' ( temp double)
|
||||||
|
0:114 Constant:
|
||||||
|
0:114 3.141593
|
||||||
|
0:115 Sequence
|
||||||
|
0:115 move second child to first child ( temp double)
|
||||||
|
0:115 'hfpi3' ( temp double)
|
||||||
|
0:115 Constant:
|
||||||
|
0:115 3.141593
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
|
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
|
||||||
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
|
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#version 460
|
#version 460
|
||||||
//#pragma glslang_binary_double_output
|
#extension GL_KHX_shader_explicit_arithmetic_types_float16 : enable
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
float w1 = 00000.000;
|
float w1 = 00000.000;
|
||||||
@ -94,5 +94,23 @@ void main()
|
|||||||
double b44 = 5708990770823839207320493820740630171355185151999e-3;
|
double b44 = 5708990770823839207320493820740630171355185151999e-3;
|
||||||
double b45 = 5708990770823839207320493820740630171355185152001e-3;
|
double b45 = 5708990770823839207320493820740630171355185152001e-3;
|
||||||
|
|
||||||
double pi = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679;
|
float pi1 = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679f;
|
||||||
|
float pi2 = 3.14159265358979f;
|
||||||
|
float pi3 = 3.141592653589793f;
|
||||||
|
|
||||||
|
double dpi1 = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679;
|
||||||
|
double dpi2 = 3.14159265358979;
|
||||||
|
double dpi3 = 3.141592653589793;
|
||||||
|
|
||||||
|
float dfpi1 = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679f;
|
||||||
|
float dfpi2 = 3.14159265358979f;
|
||||||
|
float dfpi3 = 3.141592653589793f;
|
||||||
|
|
||||||
|
double lfpi1 = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679LF;
|
||||||
|
double lfpi2 = 3.14159265358979Lf;
|
||||||
|
double lfpi3 = 3.141592653589793lF;
|
||||||
|
|
||||||
|
double hfpi1 = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679hF;
|
||||||
|
double hfpi2 = 3.14159265358979hF;
|
||||||
|
double hfpi3 = 3.141592653589793hf;
|
||||||
}
|
}
|
||||||
|
@ -317,8 +317,19 @@ int TPpContext::lFloatConst(int len, int ch, TPpToken* ppToken)
|
|||||||
} else {
|
} else {
|
||||||
// slow path
|
// slow path
|
||||||
ppToken->dval = 0.0;
|
ppToken->dval = 0.0;
|
||||||
|
|
||||||
|
// remove suffix
|
||||||
|
TString numstr(ppToken->name);
|
||||||
|
if (numstr.back() == 'f' || numstr.back() == 'F')
|
||||||
|
numstr.pop_back();
|
||||||
|
if (numstr.back() == 'h' || numstr.back() == 'H')
|
||||||
|
numstr.pop_back();
|
||||||
|
if (numstr.back() == 'l' || numstr.back() == 'L')
|
||||||
|
numstr.pop_back();
|
||||||
|
|
||||||
|
// use platform library
|
||||||
strtodStream.clear();
|
strtodStream.clear();
|
||||||
strtodStream.str(ppToken->name);
|
strtodStream.str(numstr.c_str());
|
||||||
strtodStream >> ppToken->dval;
|
strtodStream >> ppToken->dval;
|
||||||
if (strtodStream.fail()) {
|
if (strtodStream.fail()) {
|
||||||
// Assume failure combined with a large exponent was overflow, in
|
// Assume failure combined with a large exponent was overflow, in
|
||||||
|
Loading…
x
Reference in New Issue
Block a user