diff options
author | Hans-Kristian Arntzen <post@arntzen-software.no> | 2021-06-28 12:10:55 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <post@arntzen-software.no> | 2021-06-28 13:23:44 +0300 |
commit | 8216e87f02d010bc0e0233addf01541e6332b126 (patch) | |
tree | 81412a5c4a3e5cebe042834f413276b189fbf8aa /reference/shaders | |
parent | 9cdeefb5e322fc26b5fed70795fe79725648df1f (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.comp | 16 | ||||
-rw-r--r-- | reference/shaders/asm/comp/bitcast_iequal.asm.comp | 16 | ||||
-rw-r--r-- | reference/shaders/comp/casts.comp | 2 |
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)))); } |