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:
authorHans-Kristian Arntzen <post@arntzen-software.no>2021-06-28 12:10:55 +0300
committerHans-Kristian Arntzen <post@arntzen-software.no>2021-06-28 13:23:44 +0300
commit8216e87f02d010bc0e0233addf01541e6332b126 (patch)
tree81412a5c4a3e5cebe042834f413276b189fbf8aa /reference/shaders
parent9cdeefb5e322fc26b5fed70795fe79725648df1f (diff)
Handle SPIR-V 1.4 selection constructs.
Fix bug in to_trivial_mix_op, where we made a pre-1.4 assumption that component count of selector is equal to value component count.
Diffstat (limited to 'reference/shaders')
-rw-r--r--reference/shaders/asm/comp/bitcast_icmp.asm.comp16
-rw-r--r--reference/shaders/asm/comp/bitcast_iequal.asm.comp16
-rw-r--r--reference/shaders/comp/casts.comp2
3 files changed, 17 insertions, 17 deletions
diff --git a/reference/shaders/asm/comp/bitcast_icmp.asm.comp b/reference/shaders/asm/comp/bitcast_icmp.asm.comp
index bed3b90a..8d59fcc8 100644
--- a/reference/shaders/asm/comp/bitcast_icmp.asm.comp
+++ b/reference/shaders/asm/comp/bitcast_icmp.asm.comp
@@ -15,13 +15,13 @@ layout(binding = 1, std430) restrict buffer _4_6
void main()
{
- _6._m0 = mix(uvec4(0u), uvec4(1u), lessThan(ivec4(_5._m1), _5._m0));
- _6._m0 = mix(uvec4(0u), uvec4(1u), lessThanEqual(ivec4(_5._m1), _5._m0));
- _6._m0 = mix(uvec4(0u), uvec4(1u), lessThan(_5._m1, uvec4(_5._m0)));
- _6._m0 = mix(uvec4(0u), uvec4(1u), lessThanEqual(_5._m1, uvec4(_5._m0)));
- _6._m0 = mix(uvec4(0u), uvec4(1u), greaterThan(ivec4(_5._m1), _5._m0));
- _6._m0 = mix(uvec4(0u), uvec4(1u), greaterThanEqual(ivec4(_5._m1), _5._m0));
- _6._m0 = mix(uvec4(0u), uvec4(1u), greaterThan(_5._m1, uvec4(_5._m0)));
- _6._m0 = mix(uvec4(0u), uvec4(1u), greaterThanEqual(_5._m1, uvec4(_5._m0)));
+ _6._m0 = uvec4(lessThan(ivec4(_5._m1), _5._m0));
+ _6._m0 = uvec4(lessThanEqual(ivec4(_5._m1), _5._m0));
+ _6._m0 = uvec4(lessThan(_5._m1, uvec4(_5._m0)));
+ _6._m0 = uvec4(lessThanEqual(_5._m1, uvec4(_5._m0)));
+ _6._m0 = uvec4(greaterThan(ivec4(_5._m1), _5._m0));
+ _6._m0 = uvec4(greaterThanEqual(ivec4(_5._m1), _5._m0));
+ _6._m0 = uvec4(greaterThan(_5._m1, uvec4(_5._m0)));
+ _6._m0 = uvec4(greaterThanEqual(_5._m1, uvec4(_5._m0)));
}
diff --git a/reference/shaders/asm/comp/bitcast_iequal.asm.comp b/reference/shaders/asm/comp/bitcast_iequal.asm.comp
index bdb3eeb9..8a552dba 100644
--- a/reference/shaders/asm/comp/bitcast_iequal.asm.comp
+++ b/reference/shaders/asm/comp/bitcast_iequal.asm.comp
@@ -21,13 +21,13 @@ void main()
bvec4 _35 = equal(_30, ivec4(_31));
bvec4 _36 = equal(_31, _31);
bvec4 _37 = equal(_30, _30);
- _6._m0 = mix(uvec4(0u), uvec4(1u), _34);
- _6._m0 = mix(uvec4(0u), uvec4(1u), _35);
- _6._m0 = mix(uvec4(0u), uvec4(1u), _36);
- _6._m0 = mix(uvec4(0u), uvec4(1u), _37);
- _6._m1 = mix(ivec4(0), ivec4(1), _34);
- _6._m1 = mix(ivec4(0), ivec4(1), _35);
- _6._m1 = mix(ivec4(0), ivec4(1), _36);
- _6._m1 = mix(ivec4(0), ivec4(1), _37);
+ _6._m0 = uvec4(_34);
+ _6._m0 = uvec4(_35);
+ _6._m0 = uvec4(_36);
+ _6._m0 = uvec4(_37);
+ _6._m1 = ivec4(_34);
+ _6._m1 = ivec4(_35);
+ _6._m1 = ivec4(_36);
+ _6._m1 = ivec4(_37);
}
diff --git a/reference/shaders/comp/casts.comp b/reference/shaders/comp/casts.comp
index 97366867..b98890a4 100644
--- a/reference/shaders/comp/casts.comp
+++ b/reference/shaders/comp/casts.comp
@@ -14,6 +14,6 @@ layout(binding = 0, std430) buffer SSBO0
void main()
{
uint ident = gl_GlobalInvocationID.x;
- _21.outputs[ident] = mix(ivec4(0), ivec4(1), notEqual((_27.inputs[ident] & ivec4(3)), ivec4(uvec4(0u))));
+ _21.outputs[ident] = ivec4(notEqual((_27.inputs[ident] & ivec4(3)), ivec4(uvec4(0u))));
}