Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxndcn <xndchn@gmail.com>2021-05-26 17:43:26 +0300
committerxndcn <xndchn@gmail.com>2021-05-26 21:40:41 +0300
commit02fb8f2a24c9035861cd5f7b966d831daf06e5e8 (patch)
tree20e214148b196506d716a7abce8b9d0702379914
parentff61890722a91e97c44940494be5b6eed0d5ff5b (diff)
Add comment after inf/nan float number for clarifying.
-rw-r--r--reference/opt/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag2
-rw-r--r--reference/opt/shaders-msl/asm/frag/inf-nan-constant.asm.frag2
-rw-r--r--reference/opt/shaders/asm/frag/inf-nan-constant-double.asm.frag2
-rw-r--r--reference/opt/shaders/asm/frag/inf-nan-constant.asm.frag2
-rw-r--r--reference/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag2
-rw-r--r--reference/shaders-msl/asm/frag/inf-nan-constant.asm.frag2
-rw-r--r--reference/shaders/asm/frag/inf-nan-constant-double.asm.frag2
-rw-r--r--reference/shaders/asm/frag/inf-nan-constant.asm.frag2
-rw-r--r--spirv_glsl.cpp16
9 files changed, 22 insertions, 10 deletions
diff --git a/reference/opt/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag b/reference/opt/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag
index d20cf995..25dc6939 100644
--- a/reference/opt/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag
+++ b/reference/opt/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag
@@ -7,7 +7,7 @@ struct SPIRV_Cross_Output
void frag_main()
{
- FragColor = float3(asfloat(0x7f800000u), asfloat(0xff800000u), asfloat(0x7fc00000u));
+ FragColor = float3(asfloat(0x7f800000u /* inf */), asfloat(0xff800000u /* -inf */), asfloat(0x7fc00000u /* nan */));
}
SPIRV_Cross_Output main()
diff --git a/reference/opt/shaders-msl/asm/frag/inf-nan-constant.asm.frag b/reference/opt/shaders-msl/asm/frag/inf-nan-constant.asm.frag
index 8537dac1..06771989 100644
--- a/reference/opt/shaders-msl/asm/frag/inf-nan-constant.asm.frag
+++ b/reference/opt/shaders-msl/asm/frag/inf-nan-constant.asm.frag
@@ -11,7 +11,7 @@ struct main0_out
fragment main0_out main0()
{
main0_out out = {};
- out.FragColor = float3(as_type<float>(0x7f800000u), as_type<float>(0xff800000u), as_type<float>(0x7fc00000u));
+ out.FragColor = float3(as_type<float>(0x7f800000u /* inf */), as_type<float>(0xff800000u /* -inf */), as_type<float>(0x7fc00000u /* nan */));
return out;
}
diff --git a/reference/opt/shaders/asm/frag/inf-nan-constant-double.asm.frag b/reference/opt/shaders/asm/frag/inf-nan-constant-double.asm.frag
index d8e29aa4..d3e29ab9 100644
--- a/reference/opt/shaders/asm/frag/inf-nan-constant-double.asm.frag
+++ b/reference/opt/shaders/asm/frag/inf-nan-constant-double.asm.frag
@@ -6,6 +6,6 @@ layout(location = 0) flat in double vTmp;
void main()
{
- FragColor = vec3(dvec3(uint64BitsToDouble(0x7ff0000000000000ul), uint64BitsToDouble(0xfff0000000000000ul), uint64BitsToDouble(0x7ff8000000000000ul)) + dvec3(vTmp));
+ FragColor = vec3(dvec3(uint64BitsToDouble(0x7ff0000000000000ul /* inf */), uint64BitsToDouble(0xfff0000000000000ul /* -inf */), uint64BitsToDouble(0x7ff8000000000000ul /* nan */)) + dvec3(vTmp));
}
diff --git a/reference/opt/shaders/asm/frag/inf-nan-constant.asm.frag b/reference/opt/shaders/asm/frag/inf-nan-constant.asm.frag
index dd4284c9..b5e0c6e9 100644
--- a/reference/opt/shaders/asm/frag/inf-nan-constant.asm.frag
+++ b/reference/opt/shaders/asm/frag/inf-nan-constant.asm.frag
@@ -6,6 +6,6 @@ layout(location = 0) out highp vec3 FragColor;
void main()
{
- FragColor = vec3(uintBitsToFloat(0x7f800000u), uintBitsToFloat(0xff800000u), uintBitsToFloat(0x7fc00000u));
+ FragColor = vec3(uintBitsToFloat(0x7f800000u /* inf */), uintBitsToFloat(0xff800000u /* -inf */), uintBitsToFloat(0x7fc00000u /* nan */));
}
diff --git a/reference/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag b/reference/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag
index d20cf995..25dc6939 100644
--- a/reference/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag
+++ b/reference/shaders-hlsl/asm/frag/inf-nan-constant.asm.frag
@@ -7,7 +7,7 @@ struct SPIRV_Cross_Output
void frag_main()
{
- FragColor = float3(asfloat(0x7f800000u), asfloat(0xff800000u), asfloat(0x7fc00000u));
+ FragColor = float3(asfloat(0x7f800000u /* inf */), asfloat(0xff800000u /* -inf */), asfloat(0x7fc00000u /* nan */));
}
SPIRV_Cross_Output main()
diff --git a/reference/shaders-msl/asm/frag/inf-nan-constant.asm.frag b/reference/shaders-msl/asm/frag/inf-nan-constant.asm.frag
index 8537dac1..06771989 100644
--- a/reference/shaders-msl/asm/frag/inf-nan-constant.asm.frag
+++ b/reference/shaders-msl/asm/frag/inf-nan-constant.asm.frag
@@ -11,7 +11,7 @@ struct main0_out
fragment main0_out main0()
{
main0_out out = {};
- out.FragColor = float3(as_type<float>(0x7f800000u), as_type<float>(0xff800000u), as_type<float>(0x7fc00000u));
+ out.FragColor = float3(as_type<float>(0x7f800000u /* inf */), as_type<float>(0xff800000u /* -inf */), as_type<float>(0x7fc00000u /* nan */));
return out;
}
diff --git a/reference/shaders/asm/frag/inf-nan-constant-double.asm.frag b/reference/shaders/asm/frag/inf-nan-constant-double.asm.frag
index d8e29aa4..d3e29ab9 100644
--- a/reference/shaders/asm/frag/inf-nan-constant-double.asm.frag
+++ b/reference/shaders/asm/frag/inf-nan-constant-double.asm.frag
@@ -6,6 +6,6 @@ layout(location = 0) flat in double vTmp;
void main()
{
- FragColor = vec3(dvec3(uint64BitsToDouble(0x7ff0000000000000ul), uint64BitsToDouble(0xfff0000000000000ul), uint64BitsToDouble(0x7ff8000000000000ul)) + dvec3(vTmp));
+ FragColor = vec3(dvec3(uint64BitsToDouble(0x7ff0000000000000ul /* inf */), uint64BitsToDouble(0xfff0000000000000ul /* -inf */), uint64BitsToDouble(0x7ff8000000000000ul /* nan */)) + dvec3(vTmp));
}
diff --git a/reference/shaders/asm/frag/inf-nan-constant.asm.frag b/reference/shaders/asm/frag/inf-nan-constant.asm.frag
index dd4284c9..b5e0c6e9 100644
--- a/reference/shaders/asm/frag/inf-nan-constant.asm.frag
+++ b/reference/shaders/asm/frag/inf-nan-constant.asm.frag
@@ -6,6 +6,6 @@ layout(location = 0) out highp vec3 FragColor;
void main()
{
- FragColor = vec3(uintBitsToFloat(0x7f800000u), uintBitsToFloat(0xff800000u), uintBitsToFloat(0x7fc00000u));
+ FragColor = vec3(uintBitsToFloat(0x7f800000u /* inf */), uintBitsToFloat(0xff800000u /* -inf */), uintBitsToFloat(0x7fc00000u /* nan */));
}
diff --git a/spirv_glsl.cpp b/spirv_glsl.cpp
index 6feac01a..028c98d1 100644
--- a/spirv_glsl.cpp
+++ b/spirv_glsl.cpp
@@ -4948,7 +4948,13 @@ string CompilerGLSL::convert_float_to_string(const SPIRConstant &c, uint32_t col
char print_buffer[32];
sprintf(print_buffer, "0x%xu", c.scalar(col, row));
- res = join(bitcast_glsl_op(out_type, in_type), "(", print_buffer, ")");
+
+ const char *comment = "inf";
+ if (float_value == -numeric_limits<float>::infinity())
+ comment = "-inf";
+ else if (std::isnan(float_value))
+ comment = "nan";
+ res = join(bitcast_glsl_op(out_type, in_type), "(", print_buffer, " /* ", comment, " */)");
}
else
{
@@ -5015,7 +5021,13 @@ std::string CompilerGLSL::convert_double_to_string(const SPIRConstant &c, uint32
char print_buffer[64];
sprintf(print_buffer, "0x%llx%s", static_cast<unsigned long long>(u64_value),
backend.long_long_literal_suffix ? "ull" : "ul");
- res = join(bitcast_glsl_op(out_type, in_type), "(", print_buffer, ")");
+
+ const char *comment = "inf";
+ if (double_value == -numeric_limits<double>::infinity())
+ comment = "-inf";
+ else if (std::isnan(double_value))
+ comment = "nan";
+ res = join(bitcast_glsl_op(out_type, in_type), "(", print_buffer, " /* ", comment, " */)");
}
else
{