Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/shaderc
Path: blob/main/glslc/test/option_dash_fnan_clamp.py
1560 views
1
# Copyright 2019 The Shaderc Authors. All rights reserved.
2
#
3
# Licensed under the Apache License, Version 2.0 (the "License");
4
# you may not use this file except in compliance with the License.
5
# You may obtain a copy of the License at
6
#
7
# http://www.apache.org/licenses/LICENSE-2.0
8
#
9
# Unless required by applicable law or agreed to in writing, software
10
# distributed under the License is distributed on an "AS IS" BASIS,
11
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
# See the License for the specific language governing permissions and
13
# limitations under the License.
14
15
import expect
16
from glslc_test_framework import inside_glslc_testsuite
17
from placeholder import FileShader
18
19
# A GLSL shader using the clamp, max, and min builtin functions.
20
GLSL_FRAG_SHADER_WITH_CLAMP = """#version 450
21
layout(location=0) in vec4 i;
22
layout(location=0) out vec4 o;
23
void main() {
24
o = clamp(i, vec4(0.5), vec4(1.0))
25
+ max(i, vec4(0.5))
26
+ min(i, vec4(0.5));
27
}
28
"""
29
30
31
@inside_glslc_testsuite('OptionFNanClamp')
32
class TestClampMapsToFClampByDefault(expect.ValidAssemblyFileWithSubstr):
33
shader = FileShader(GLSL_FRAG_SHADER_WITH_CLAMP, '.frag')
34
glslc_args = ['-S', shader]
35
expected_assembly_substr = 'OpExtInst %v4float %1 FClamp'
36
37
38
@inside_glslc_testsuite('OptionFNanClamp')
39
class TestMaxMapsToFMaxByDefault(expect.ValidAssemblyFileWithSubstr):
40
shader = FileShader(GLSL_FRAG_SHADER_WITH_CLAMP, '.frag')
41
glslc_args = ['-S', shader]
42
expected_assembly_substr = 'OpExtInst %v4float %1 FMax'
43
44
45
@inside_glslc_testsuite('OptionFNanClamp')
46
class TestMinMapsToFMinByDefault(expect.ValidAssemblyFileWithSubstr):
47
shader = FileShader(GLSL_FRAG_SHADER_WITH_CLAMP, '.frag')
48
glslc_args = ['-S', shader]
49
expected_assembly_substr = 'OpExtInst %v4float %1 FMin'
50
51
52
@inside_glslc_testsuite('OptionFNanClamp')
53
class TestClampMapsToNClampWithFlag(expect.ValidAssemblyFileWithSubstr):
54
shader = FileShader(GLSL_FRAG_SHADER_WITH_CLAMP, '.frag')
55
glslc_args = ['-S', '-fnan-clamp', shader]
56
expected_assembly_substr = 'OpExtInst %v4float %1 NClamp'
57
58
@inside_glslc_testsuite('OptionFNanClamp')
59
class TestMaxMapsToNMaxWithFlag(expect.ValidAssemblyFileWithSubstr):
60
shader = FileShader(GLSL_FRAG_SHADER_WITH_CLAMP, '.frag')
61
glslc_args = ['-S', '-fnan-clamp', shader]
62
expected_assembly_substr = 'OpExtInst %v4float %1 NMax'
63
64
65
@inside_glslc_testsuite('OptionFNanClamp')
66
class TestMinMapsToNMinWithFlag(expect.ValidAssemblyFileWithSubstr):
67
shader = FileShader(GLSL_FRAG_SHADER_WITH_CLAMP, '.frag')
68
glslc_args = ['-S', '-fnan-clamp', shader]
69
expected_assembly_substr = 'OpExtInst %v4float %1 NMin'
70
71