SPIRV-Cross/reference/shaders-msl/flatten
Bill Hollings 40141ffddf MSL: Selectively enable fast-math in MSL code to match Vulkan CTS results.
Based on CTS testing, math optimizations between MSL and Vulkan are inconsistent.
In some cases, enabling MSL's fast-math compilation option matches Vulkan's math
results. In other cases, disabling it does. Broadly enabling or disabling fast-math
across all shaders results in some CTS test failures either way.

To fix this, selectively enable/disable fast-math optimizations in the MSL code,
using metal::fast and metal::precise function namespaces, where supported, and
the [[clang::optnone]] function attribute otherwise.

Adjust SPIRV-Cross unit test reference shaders to accommodate these changes.
2021-09-22 18:58:31 -04:00
..
basic.flatten.vert CompilerMSL support matrices & arrays in stage-in & stage-out. 2018-06-12 11:41:35 -04:00
multiindex.flatten.vert CompilerMSL support matrices & arrays in stage-in & stage-out. 2018-06-12 11:41:35 -04:00
push-constant.flatten.vert CompilerMSL support matrices & arrays in stage-in & stage-out. 2018-06-12 11:41:35 -04:00
rowmajor.flatten.vert Use to_unpacked_row_major_expression to unify row-major in MSL/GLSL. 2019-07-23 11:36:54 +02:00
struct.flatten.vert MSL: Selectively enable fast-math in MSL code to match Vulkan CTS results. 2021-09-22 18:58:31 -04:00
swizzle.flatten.vert Deal with packed expressions in more scenarios. 2018-05-25 10:57:02 +02:00
types.flatten.frag MSL: Rewrite how resource indices are fallback-assigned. 2019-06-21 12:54:08 +02:00