Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit da6f7ab3 authored by Jason Sams's avatar Jason Sams Committed by Android (Google) Code Review
Browse files

Merge "Fix aprox fs function names bug b206696" into jb-mr1-dev

parents 596bcc23 36fa5a42
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -383,13 +383,12 @@ static void bench_fp_math() {
}

static void bench_approx_math() {
    BENCH_FN_FUNC_FN(approx_recip);
    BENCH_FN_FUNC_FN(approx_sqrt);
    BENCH_FN_FUNC_FN(approx_rsqrt);
    BENCH_FN_FUNC_FN(approx_length);
    BENCH_FN_FUNC_FN_FN(approx_distance);
    BENCH_FN_FUNC_FN(approx_normalize);
    BENCH_FN_FUNC_FN(approx_atan);
    BENCH_FN_FUNC_FN(half_recip);
    BENCH_FN_FUNC_FN(half_sqrt);
    BENCH_FN_FUNC_FN(half_rsqrt);
    BENCH_FN_FUNC_FN(fast_length);
    BENCH_FN_FUNC_FN_FN(fast_distance);
    BENCH_FN_FUNC_FN(fast_normalize);
}

void bench() {
+2 −2
Original line number Diff line number Diff line
@@ -48,8 +48,8 @@ void root(uchar4 *out, uint32_t x, uint32_t y) {
    const float2 coord = mad(inCoord, inv_dimensions, neg_center);
    const float2 scaledCoord = axis_scale * coord;
    const float dist2 = scaledCoord.x*scaledCoord.x + scaledCoord.y*scaledCoord.y;
    const float inv_dist = approx_rsqrt(dist2);
    const float radian = M_PI_2 - approx_atan((alpha * approx_sqrt(radius2 - dist2)) * inv_dist);
    const float inv_dist = half_rsqrt(dist2);
    const float radian = M_PI_2 - atan((alpha * half_sqrt(radius2 - dist2)) * inv_dist);
    const float scalar = radian * factor * inv_dist;
    const float2 new_coord = mad(coord, scalar, center);
    const float4 fout = rsSample(in_alloc, sampler, new_coord);
+3 −3
Original line number Diff line number Diff line
@@ -49,9 +49,9 @@ void root(const uchar4 *in, uchar4 *out, uint32_t x, uint32_t y) {
    const float4 fin = convert_float4(*in);
    const float2 inCoord = {(float)x, (float)y};
    const float2 coord = mad(inCoord, inv_dimensions, neg_center);
    const float sloped_dist_ratio = approx_length(axis_scale * coord)  * sloped_inv_max_dist;
    // TODO:  add approx_exp once implemented
    const float lumen = opp_shade + shade * approx_recip(1.f + sloped_neg_range * exp(sloped_dist_ratio));
    const float sloped_dist_ratio = fast_length(axis_scale * coord)  * sloped_inv_max_dist;
    // TODO:  add half_exp once implemented
    const float lumen = opp_shade + shade * half_recip(1.f + sloped_neg_range * exp(sloped_dist_ratio));
    float4 fout;
    fout.rgb = fin.rgb * lumen;
    fout.w = fin.w;