/third_party/skia/src/gpu/geometry/ |
H A D | GrQuadUtils.h | 49 inline void Outset(const skvx::Vec<4, float>& edgeDistances, GrQuad* quad); 73 skvx::Vec<4, float> inset(const skvx::Vec<4, float>& edgeDistances, 80 void outset(const skvx::Vec<4, float>& edgeDistances, 87 void getEdgeEquations(skvx::Vec<4, float>* a, 88 skvx::Vec<4, float>* b, 89 skvx::Vec<4, float>* c); 93 skvx::Vec<4, float> getEdgeLengths(); 108 skvx::Vec<4, float> fX2D, fY2D; 111 skvx 220 Outset(const skvx::Vec<4, float>& edgeDistances, GrQuad* quad) Outset() argument [all...] |
H A D | GrQuadUtils.cpp | 16 using V4f = skvx::Vec<4, float>; 17 using M4f = skvx::Vec<4, int32_t>; 31 static AI skvx::Vec<4, T> next_cw(const skvx::Vec<4, T>& v) { in next_cw() argument 32 return skvx::shuffle<2, 0, 3, 1>(v); in next_cw() 36 static AI skvx::Vec<4, T> next_ccw(const skvx::Vec<4, T>& v) { in next_ccw() argument 37 return skvx::shuffle<1, 3, 0, 2>(v); in next_ccw() 42 return skvx::shuffle<3, 2, 1, 0>(v); in next_diag() 659 void TessellationHelper::EdgeVectors::reset(const skvx argument [all...] |
H A D | GrQuad.h | 105 skvx::Vec<4, float> x4f() const { return skvx::Vec<4, float>::Load(fX); } in x4f() 106 skvx::Vec<4, float> y4f() const { return skvx::Vec<4, float>::Load(fY); } in y4f() 107 skvx::Vec<4, float> w4f() const { return skvx::Vec<4, float>::Load(fW); } in w4f() 108 skvx::Vec<4, float> iw4f() const { return 1.f / this->w4f(); } in iw4f() 146 GrQuad(const skvx::Vec<4, float>& xs, const skvx::Vec<4, float>& ys, Type type) in GrQuad() argument 153 GrQuad(const skvx argument [all...] |
H A D | GrQuad.cpp | 12 using V4f = skvx::Vec<4, float>; 33 *xs = skvx::shuffle<0, 0, 2, 2>(r); in map_rect_translate_scale() 34 *ys = skvx::shuffle<1, 3, 1, 3>(r); in map_rect_translate_scale()
|
/third_party/skia/src/effects/imagefilters/ |
H A D | SkBlurImageFilter.cpp | 242 return bufferCount * sizeof(skvx::Vec<4, uint32_t>); in MakeMaker() 252 skvx::Vec<4, uint32_t>* buffer0 = static_cast<skvx::Vec<4, uint32_t>*>(buffers); in Make() 253 skvx::Vec<4, uint32_t>* buffer1 = buffer0 + passSize; in Make() 254 skvx::Vec<4, uint32_t>* buffer2 = buffer1 + passSize; in Make() 257 skvx::Vec<4, uint32_t>* buffersEnd = buffer2 + ((window & 1) ? passSize : passSize + 1); in Make() 312 GaussPass(skvx::Vec<4, uint32_t>* buffer0, in GaussPass() 313 skvx::Vec<4, uint32_t>* buffer1, in GaussPass() 314 skvx::Vec<4, uint32_t>* buffer2, in GaussPass() 315 skvx in GaussPass() [all...] |
/third_party/skia/tests/ |
H A D | SkVxTest.cpp | 12 using float2 = skvx::Vec<2,float>; 13 using float4 = skvx::Vec<4,float>; 14 using float8 = skvx::Vec<8,float>; 16 using double2 = skvx::Vec<2,double>; 17 using double4 = skvx::Vec<4,double>; 18 using double8 = skvx::Vec<8,double>; 20 using byte2 = skvx::Vec< 2,uint8_t>; 21 using byte4 = skvx::Vec< 4,uint8_t>; 22 using byte8 = skvx::Vec< 8,uint8_t>; 23 using byte16 = skvx [all...] |
/third_party/skia/src/opts/ |
H A D | SkVM_opts.h | 11 static inline skvx::Vec<N,int> gather32(const int* ptr, const skvx::Vec<N,int>& ix) { in gather32() argument 14 return skvx::bit_pun<skvx::Vec<N,int>>( in gather32() 15 _mm256_i32gather_epi32(ptr, skvx::bit_pun<__m256i>(ix), 4)); in gather32() 34 using I32 = skvx::Vec<K, int>; 35 using I16 = skvx::Vec<K, int16_t>; 36 using F32 = skvx::Vec<K, float>; 37 using U64 = skvx::Vec<K, uint64_t>; 38 using U32 = skvx [all...] |
H A D | SkBitmapProcState_opts.h | 56 auto bilerp = [&](skvx::Vec<8,uint32_t> packed_x_coordinates) -> skvx::Vec<8,uint32_t> { in S32_alpha_D32_filter_DX() 58 skvx::Vec<8,uint32_t> x0,x1,wx; in S32_alpha_D32_filter_DX() 67 auto gather = [](const uint32_t* ptr, skvx::Vec<8,uint32_t> ix) { in S32_alpha_D32_filter_DX() 70 return skvx::bit_pun<skvx::Vec<8,uint32_t>>( in S32_alpha_D32_filter_DX() 71 _mm256_i32gather_epi32((const int*)ptr, skvx::bit_pun<__m256i>(ix), 4)); in S32_alpha_D32_filter_DX() 74 return skvx::Vec<8,uint32_t>{ in S32_alpha_D32_filter_DX() 82 skvx::Vec<8,uint32_t> tl = gather(row0, x0), tr = gather(row0, x1), in S32_alpha_D32_filter_DX() 87 auto lerp_x = [&](skvx in S32_alpha_D32_filter_DX() [all...] |
H A D | SkBlitRow_opts.h | 225 using U32 = skvx::Vec< N, uint32_t>; in blit_row_color32() 226 using U16 = skvx::Vec<4*N, uint16_t>; in blit_row_color32() 227 using U8 = skvx::Vec<4*N, uint8_t>; in blit_row_color32() 236 U8 s = skvx::bit_pun<U8>(src), in blit_row_color32() 238 U16 c = skvx::cast<uint16_t>(skvx::bit_pun<U8>(U32(color))), in blit_row_color32() 240 return skvx::bit_pun<U32>(skvx::cast<uint8_t>(d)); in blit_row_color32()
|
/third_party/skia/src/gpu/tessellate/ |
H A D | CullTest.h | 50 return skvx::all(fCullBounds < devPt); in isVisible() 65 val0 = skvx::max(val0, val1); in areVisible3() 66 val0 = skvx::max(val0, val2); in areVisible3() 71 return skvx::all(fCullBounds < val0); in areVisible3() 88 val0 = skvx::max(val0, val1); in areVisible4() 89 val2 = skvx::max(val2, val3); in areVisible4() 90 val0 = skvx::max(val0, val2); in areVisible4() 95 return skvx::all(fCullBounds < val0); in areVisible4()
|
H A D | WangsFormula.h | 65 using float2 = skvx::Vec<2, float>; 66 using float4 = skvx::Vec<4, float>; 121 float2 p0 = skvx::bit_pun<float2>(pts[0]); in quadratic_pow4() 122 float2 p1 = skvx::bit_pun<float2>(pts[1]); in quadratic_pow4() 123 float2 p2 = skvx::bit_pun<float2>(pts[2]); in quadratic_pow4() 207 float2 p0 = vectorXform(skvx::bit_pun<float2>(pts[0])); in conic_pow2() 208 float2 p1 = vectorXform(skvx::bit_pun<float2>(pts[1])); in conic_pow2() 209 float2 p2 = vectorXform(skvx::bit_pun<float2>(pts[2])); in conic_pow2() 212 const float2 C = 0.5f * (skvx::min(skvx in conic_pow2() [all...] |
H A D | AffineMatrix.h | 44 return this->map2Points(float4(skvx::bit_pun<float2>(p0), skvx::bit_pun<float2>(p1))); in map2Points() 56 return skvx::bit_pun<SkPoint>(this->mapPoint(skvx::bit_pun<float2>(p))); in mapPoint()
|
H A D | Tessellation.h | 24 template<int N> using vec = skvx::Vec<N, float>; 28 template<int N> using ivec = skvx::Vec<N, int32_t>; 32 template<int N> using uvec = skvx::Vec<N, uint32_t>;
|
H A D | StrokeHardwareTessellator.cpp | 110 float2 numRadialSegments_180_360 = skvx::max(skvx::ceil( in updateTolerances() 115 float2 maxParametricSegments = skvx::max(maxTotalEdges - numRadialSegments_180_360, 0); in updateTolerances() 132 float2 maxParametricSegments_pow4_withJoin = pow4(skvx::max( in updateTolerances() 665 float2 p0 = skvx::bit_pun<float2>(p[0]); in cubic_has_cusp() 666 float2 p1 = skvx::bit_pun<float2>(p[1]); in cubic_has_cusp() 667 float2 p2 = skvx::bit_pun<float2>(p[2]); in cubic_has_cusp() 668 float2 p3 = skvx::bit_pun<float2>(p[3]); in cubic_has_cusp() 693 (!(skvx::all(p0 == p1) || skvx in cubic_has_cusp() [all...] |
H A D | StrokeTessellator.h | 76 vec<N> cosTheta = skvx::max(1 - 2 / (parametricPrecision * strokeWidths), -1); in ApproxNumRadialSegmentsPerRadian() 78 return .5f / (skvx::approx_acos(cosTheta) - SKVX_APPROX_ACOS_MAX_ERROR); in ApproxNumRadialSegmentsPerRadian()
|
/third_party/skia/modules/skottie/src/effects/ |
H A D | MotionBlurEffect.cpp | 141 auto s = skvx::Vec<16, uint8_t >::Load(src); in renderToRaster8888Pow2Samples() 142 auto d = skvx::Vec<16, uint16_t>::Load(dst); in renderToRaster8888Pow2Samples() 144 (d + skvx::cast<uint16_t>(s)).store(dst); in renderToRaster8888Pow2Samples() 151 auto s = skvx::Vec<4, uint8_t >::Load(src); in renderToRaster8888Pow2Samples() 152 auto d = skvx::Vec<4, uint16_t>::Load(dst); in renderToRaster8888Pow2Samples() 154 (d + skvx::cast<uint16_t>(s)).store(dst); in renderToRaster8888Pow2Samples() 173 auto s = skvx::Vec<16, uint16_t>::Load(src); in renderToRaster8888Pow2Samples() 174 skvx::cast<uint8_t>(s >> shift).store(dst); in renderToRaster8888Pow2Samples() 181 auto s = skvx::Vec<4, uint16_t>::Load(src); in renderToRaster8888Pow2Samples() 182 skvx in renderToRaster8888Pow2Samples() [all...] |
/third_party/skia/src/gpu/ |
H A D | GrVx.h | 14 // grvx is Ganesh's addendum to skvx, Skia's SIMD library. Here we introduce functions that are 20 template<int N> using vec = skvx::Vec<N, float>; 24 template<int N> using ivec = skvx::Vec<N, int32_t>; 28 template<int N> using uvec = skvx::Vec<N, uint32_t>; 38 float2 x = a*skvx::shuffle<1,0>(b); in cross()
|
/third_party/skia/src/gpu/ops/ |
H A D | AtlasPathRenderer.cpp | 31 return {skvx::floor(float2::Load(&r.fLeft)), skvx::ceil(float2::Load(&r.fRight))}; in round_out() 53 if (!skvx::all(pathTopLeft < pathBotRight)) { in is_visible() 56 float2 clipTopLeft = skvx::cast<float>(int2::Load(&clipBounds.fLeft)); in is_visible() 57 float2 clipBotRight = skvx::cast<float>(int2::Load(&clipBounds.fRight)); in is_visible() 59 return skvx::all(pathTopLeft < clipBotRight) && skvx::all(pathBotRight > clipTopLeft); in is_visible() 150 skvx::all(size <= fAtlasMaxPathWidth) && in pathFitsInAtlas() 184 SkASSERT(skvx::all(skvx in addPathToAtlas() [all...] |
/third_party/skia/experimental/graphite/src/geom/ |
H A D | VectorTypes.h | 16 template<int N> using vec = skvx::Vec<N, float>; 20 template<int N> using ivec = skvx::Vec<N, int32_t>; 24 template<int N> using uvec = skvx::Vec<N, uint32_t>;
|
/third_party/skia/src/core/ |
H A D | SkGeometry.cpp | 449 inline static skvx::Vec<N,T> unchecked_mix(const skvx::Vec<N,T>& a, const skvx::Vec<N,T>& b, 450 const skvx::Vec<N,T>& t) { 455 using float2 = skvx::Vec<2,float>; 464 float2 p0 = skvx::bit_pun<float2>(src[0]); 465 float2 p1 = skvx::bit_pun<float2>(src[1]); 466 float2 p2 = skvx::bit_pun<float2>(src[2]); 467 float2 p3 = skvx::bit_pun<float2>(src[3]); 477 dst[0] = skvx [all...] |
H A D | SkM44.cpp | 17 using sk4f = skvx::Vec<4, float>; 18 using sk2f = skvx::Vec<2, float>; 149 sk4f c0 = skvx::shuffle<0,1,0,1>(sk2f::Load(mat + 0)) * flip; in map_rect_affine() 150 sk4f c1 = skvx::shuffle<0,1,0,1>(sk2f::Load(mat + 4)) * flip; in map_rect_affine() 151 sk4f c3 = skvx::shuffle<0,1,0,1>(sk2f::Load(mat + 12)); in map_rect_affine() 187 return flip * skvx::shuffle<0,1,0,1>(p0) / w0; in map_rect_perspective() 193 sk2f c = (t * skvx::shuffle<0,1>(p) + (1.f - t) * skvx::shuffle<0,1>(p0)) / in map_rect_perspective() 196 return flip * skvx::shuffle<0,1,0,1>(c); in map_rect_perspective()
|
H A D | SkGlyph.h | 131 using namespace skvx; 202 skvx::Vec<2, int16_t> topLeft() const { return {fRect[0], fRect[1]}; } 207 using Storage = skvx::Vec<4, int16_t>; 222 return skvx::min(a.fRect, b.fRect); 225 return skvx::max(a.fRect, b.fRect);
|
/third_party/skia/include/private/ |
H A D | SkVx.h | 11 // skvx::Vec<N,T> are SIMD vectors of N T's, a v1.5 successor to SkNx<N,T>. 18 // with across translation units. skvx::Vec<N,T> always has N*sizeof(T) size 54 namespace skvx { namespace 550 // skvx::Vec<4,float> rgba = {R,G,B,A}; 571 Fn&& fn, const Args&... args) -> skvx::Vec<sizeof...(I), decltype(fn(args[0]...))> { 817 skvx::Vec<1,T>& a, in strided_load4() 818 skvx::Vec<1,T>& b, in strided_load4() 819 skvx::Vec<1,T>& c, in strided_load4() 820 skvx::Vec<1,T>& d) { in strided_load4() 827 skvx in strided_load4() [all...] |
/third_party/skia/modules/canvaskit/wasm_tools/SIMD/ |
H A D | simd_int_capabilities.cpp | 34 auto vec1 = skvx::Vec<4, int>({3, 7, 11, 23}); in main() 35 auto vec2 = skvx::Vec<4, int>({1, 9, 27, 41}); in main() 37 //auto vec3 = skvx::join(vec1, vec2); //not available in wasm in main() 63 //auto vec3 = skvx::any(vec1); //GOOD (FIXED) in main() 64 //auto vec3 = skvx::all(vec1); //GOOD (FIXED) in main() 66 //auto a = skvx::max(vec1, vec2); //GOOD (FIXED) in main() 67 //auto a = skvx::min(vec1, vec2); //GOOD (FIXED) in main() 69 //vec1 = skvx::pow(vec1, vec2); //not available in wasm in main() 70 //vec1 = skvx::atan(vec1); //not available in wasm in main() 72 //vec1 = skvx in main() [all...] |
H A D | simd_float_capabilities.cpp | 34 auto vec1 = skvx::Vec<4, float>({11.f, -22.f, 33.f, -44.f}); in main() 35 auto vec2 = skvx::Vec<4, float>({-.5f, 100.5f, 100.5f, -.5f}); in main() 37 //auto vec3 = skvx::join(vec1, vec2); //not available in wasm in main() 63 //auto vec3 = skvx::any(vec1); //N/A in main() 64 //auto vec3 = skvx::all(vec1); //N/A in main() 66 //vec1 = skvx::max(vec1, vec2); //GOOD (FIXED) in main() 67 //vec1 = skvx::min(vec1, vec2); //GOOD (FIXED) in main() 69 //vec1 = skvx::pow(vec1, vec2); //not available in wasm in main() 70 //vec1 = skvx::atan(vec1); //not available in wasm in main() 72 //vec1 = skvx in main() [all...] |