a80a3dc170
Our Metal codegen assumes that out params are pointers, but Metal's built-in frexp actually takes a reference for the exponent, not a pointer. We now add in a helper function to translate. Change-Id: I24686347d07151dd99a1ff1c43aff2b35c3181e5 Bug: skia:10762 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328387 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com> Auto-Submit: John Stiles <johnstiles@google.com>
18 lines
523 B
Metal
18 lines
523 B
Metal
#include <metal_stdlib>
|
|
#include <simd/simd.h>
|
|
using namespace metal;
|
|
struct Inputs {
|
|
};
|
|
struct Outputs {
|
|
float4 sk_FragColor [[color(0)]];
|
|
};
|
|
float frexp(float arg, thread int* exp) { return frexp(arg, *exp); }
|
|
fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
|
|
Outputs _outputStruct;
|
|
thread Outputs* _out = &_outputStruct;
|
|
int exp;
|
|
float foo = frexp(0.5, &exp);
|
|
_out->sk_FragColor = float4(float(exp));
|
|
return *_out;
|
|
}
|