diff options
author | Hans-Kristian Arntzen <post@arntzen-software.no> | 2021-11-07 13:27:20 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <post@arntzen-software.no> | 2021-11-07 13:36:44 +0300 |
commit | 4561ecddbd8c0569506d968a28acd611cb0d45c8 (patch) | |
tree | aaa2c1f3b425d8962279ef18948fdfaa948a44d1 /reference/opt/shaders-msl | |
parent | 04293e03fdc6205ba9e0e52c54d7901a4e67ae13 (diff) |
Handle Modf/Frexp in more cases.
Consider it a write to a variable, similar to OpStore.
Diffstat (limited to 'reference/opt/shaders-msl')
-rw-r--r-- | reference/opt/shaders-msl/frag/modf-access-tracking-function.frag | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/reference/opt/shaders-msl/frag/modf-access-tracking-function.frag b/reference/opt/shaders-msl/frag/modf-access-tracking-function.frag new file mode 100644 index 00000000..612dd4e9 --- /dev/null +++ b/reference/opt/shaders-msl/frag/modf-access-tracking-function.frag @@ -0,0 +1,24 @@ +#include <metal_stdlib> +#include <simd/simd.h> + +using namespace metal; + +struct main0_out +{ + float4 vo0 [[color(0)]]; + float4 vo1 [[color(1)]]; +}; + +struct main0_in +{ + float4 v [[user(locn0)]]; +}; + +fragment main0_out main0(main0_in in [[stage_in]]) +{ + main0_out out = {}; + float4 _25 = modf(in.v, out.vo1); + out.vo0 = _25; + return out; +} + |