From 6157bf3caee1294153f18a703e0bcef26d011cf3 Mon Sep 17 00:00:00 2001 From: Hans-Kristian Arntzen Date: Fri, 26 Oct 2018 10:53:11 +0200 Subject: Add Windows support in Travis CI. - Add new Windows support - Use CMake/CTest instead of Make + shell scripts - Use --parallel in CTest - Fix CTest on Windows - Cleanups in test_shaders.py - Force specific commit for SPIRV-Headers - Fix Inf/NaN odd-ball case by moving to ASM --- shaders/asm/frag/inf-nan-constant-double.asm.frag | 41 ++++++++++++++++++++++ shaders/asm/frag/inf-nan-constant.asm.frag | 29 +++++++++++++++ .../frag/inf-nan-constant-double.desktop.frag | 13 ------- shaders/frag/inf-nan-constant.frag | 14 -------- 4 files changed, 70 insertions(+), 27 deletions(-) create mode 100644 shaders/asm/frag/inf-nan-constant-double.asm.frag create mode 100644 shaders/asm/frag/inf-nan-constant.asm.frag delete mode 100644 shaders/desktop-only/frag/inf-nan-constant-double.desktop.frag delete mode 100644 shaders/frag/inf-nan-constant.frag (limited to 'shaders') diff --git a/shaders/asm/frag/inf-nan-constant-double.asm.frag b/shaders/asm/frag/inf-nan-constant-double.asm.frag new file mode 100644 index 00000000..2d0c18a9 --- /dev/null +++ b/shaders/asm/frag/inf-nan-constant-double.asm.frag @@ -0,0 +1,41 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos Glslang Reference Front End; 7 +; Bound: 22 +; Schema: 0 + OpCapability Shader + OpCapability Float64 + %1 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint Fragment %main "main" %FragColor %vTmp + OpExecutionMode %main OriginUpperLeft + OpSource GLSL 450 + OpName %main "main" + OpName %FragColor "FragColor" + OpName %vTmp "vTmp" + OpDecorate %FragColor Location 0 + OpDecorate %vTmp Flat + OpDecorate %vTmp Location 0 + %void = OpTypeVoid + %3 = OpTypeFunction %void + %float = OpTypeFloat 32 + %v3float = OpTypeVector %float 3 +%_ptr_Output_v3float = OpTypePointer Output %v3float + %FragColor = OpVariable %_ptr_Output_v3float Output + %double = OpTypeFloat 64 + %v3double = OpTypeVector %double 3 +%double_0x1p_1024 = OpConstant %double 0x1p+1024 +%double_n0x1p_1024 = OpConstant %double -0x1p+1024 +%double_0x1_8p_1024 = OpConstant %double 0x1.8p+1024 + %15 = OpConstantComposite %v3double %double_0x1p_1024 %double_n0x1p_1024 %double_0x1_8p_1024 +%_ptr_Input_double = OpTypePointer Input %double + %vTmp = OpVariable %_ptr_Input_double Input + %main = OpFunction %void None %3 + %5 = OpLabel + %18 = OpLoad %double %vTmp + %19 = OpCompositeConstruct %v3double %18 %18 %18 + %20 = OpFAdd %v3double %15 %19 + %21 = OpFConvert %v3float %20 + OpStore %FragColor %21 + OpReturn + OpFunctionEnd diff --git a/shaders/asm/frag/inf-nan-constant.asm.frag b/shaders/asm/frag/inf-nan-constant.asm.frag new file mode 100644 index 00000000..40e5d3a8 --- /dev/null +++ b/shaders/asm/frag/inf-nan-constant.asm.frag @@ -0,0 +1,29 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos Glslang Reference Front End; 7 +; Bound: 14 +; Schema: 0 + OpCapability Shader + %1 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint Fragment %main "main" %FragColor + OpExecutionMode %main OriginUpperLeft + OpSource ESSL 310 + OpName %main "main" + OpName %FragColor "FragColor" + OpDecorate %FragColor Location 0 + %void = OpTypeVoid + %3 = OpTypeFunction %void + %float = OpTypeFloat 32 + %v3float = OpTypeVector %float 3 +%_ptr_Output_v3float = OpTypePointer Output %v3float + %FragColor = OpVariable %_ptr_Output_v3float Output +%float_0x1p_128 = OpConstant %float 0x1p+128 +%float_n0x1p_128 = OpConstant %float -0x1p+128 +%float_0x1_8p_128 = OpConstant %float 0x1.8p+128 + %13 = OpConstantComposite %v3float %float_0x1p_128 %float_n0x1p_128 %float_0x1_8p_128 + %main = OpFunction %void None %3 + %5 = OpLabel + OpStore %FragColor %13 + OpReturn + OpFunctionEnd diff --git a/shaders/desktop-only/frag/inf-nan-constant-double.desktop.frag b/shaders/desktop-only/frag/inf-nan-constant-double.desktop.frag deleted file mode 100644 index d2a80fe0..00000000 --- a/shaders/desktop-only/frag/inf-nan-constant-double.desktop.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 450 - -const double posinf = 1.0lf / 0.0lf; -const double neginf = -1.0lf / 0.0lf; -const double nan = 0.0lf / 0.0lf; - -layout(location = 0) out vec3 FragColor; -layout(location = 0) flat in double vTmp; - -void main() -{ - FragColor = vec3(dvec3(posinf, neginf, nan) + vTmp); -} diff --git a/shaders/frag/inf-nan-constant.frag b/shaders/frag/inf-nan-constant.frag deleted file mode 100644 index 78b93c31..00000000 --- a/shaders/frag/inf-nan-constant.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 310 es -precision highp float; - -const float posinf = 1.0 / 0.0; -const float neginf = -1.0 / 0.0; -const float nan = 0.0 / 0.0; - -layout(location = 0) out vec3 FragColor; - -void main() -{ - FragColor = vec3(posinf, neginf, nan); -} - -- cgit v1.2.3