SPIRV-Cross/shaders-msl/asm/frag
Chip Davis 27af716c3a MSL: Emit F{Min,Max,Clamp} as fast:: and N{Min,Max,Clamp} as precise::.
This roughly matches their semantics in SPIR-V and MSL. For `FMin`,
`FMax`, and `FClamp`, and the Metal functions `fast::min()`,
`fast::max()`, and `fast::clamp()`, the result is undefined if any
operand is NaN. For the 'N' operations and their corresponding MSL
`precise::` functions, the result is consistent with IEEE 754 (first
non-NaN wins; result is NaN if all operands are NaN).

We can only do this with 32-bit floats, though, because Metal only
provides these variants for `float`. `half` only has one variant of
these functions that is presumably consistent with IEEE 754. I guess
that's OK; the SPIR-V spec only says that `F{Min,Max,Clamp}` are
undefined for NaNs. Performance might suffer, though.
2018-09-01 23:01:46 -05:00
..
combined-sampler-reuse.asm.frag Fix case where SampledImage would get flushed to temporary. 2018-04-27 10:06:30 +02:00
default-member-names.asm.frag CompilerMSL support and tests for OpUndef. 2017-11-15 22:44:42 -05:00
empty-struct.asm.frag Support empty structs. 2018-04-05 16:26:54 +02:00
frem.asm.frag Add OpFRem tests. 2018-02-15 13:36:59 +01:00
function-overload-alias.asm.frag Handle overloaded functions which share the same OpName. 2018-02-23 14:15:51 +01:00
image-extract-reuse.asm.frag Fix usage tracking issue for OpImage. 2018-04-27 11:11:24 +02:00
implicit-read-dep-phi.asm.frag Add test shader where a phi variable invalidates a temporary. 2018-03-09 14:42:26 +01:00
lut-promotion-initializer.asm.frag Add LUT test cases for OpVariable with initializer. 2018-07-05 14:51:07 +02:00
min-max-clamp.asm.frag MSL: Emit F{Min,Max,Clamp} as fast:: and N{Min,Max,Clamp} as precise::. 2018-09-01 23:01:46 -05:00
op-constant-null.asm.frag CompilerMSL support and tests for OpUndef. 2017-11-15 22:44:42 -05:00
pass-by-value.asm.frag MSL: Properly support passing parameters by value. 2018-08-06 15:43:51 +02:00
phi-loop-variable.asm.frag CompilerMSL support and tests for OpUndef. 2017-11-15 22:44:42 -05:00
srem.asm.frag Add SREM tests for HLSL/MSL. 2018-05-24 10:34:36 +02:00
texel-fetch-no-lod.asm.frag Deal with OpImageFetch without explicit LOD. 2018-04-30 10:54:44 +02:00
undef-variable-store.asm.frag CompilerMSL support and tests for OpUndef. 2017-11-15 22:44:42 -05:00
unknown-depth-state.asm.frag Support OpTypeImage with depth == 2 (unknown) properly. 2018-07-04 14:26:23 +02:00
unord-relational-op.asm.frag Add tests for FUnord comparisons of vectors. 2018-09-01 12:42:07 -05:00
unreachable.asm.frag Add unreachable tests for MSL/HLSL. 2018-01-15 09:39:15 +01:00
vector-shuffle-oom.asm.frag Use declared binding in SPIR-V as a fallback for explicit MSL binds. 2018-04-04 12:25:11 +02:00