Home
last modified time | relevance | path

Searched refs:skvx (Results 1 - 25 of 42) sorted by relevance

12

/third_party/skia/src/gpu/geometry/
H A DGrQuadUtils.h49 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 DGrQuadUtils.cpp16 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 DGrQuad.h105 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 DGrQuad.cpp12 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 DSkBlurImageFilter.cpp242 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 DSkVxTest.cpp12 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 DSkVM_opts.h11 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 DSkBitmapProcState_opts.h56 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 DSkBlitRow_opts.h225 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 DCullTest.h50 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 DWangsFormula.h65 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 DAffineMatrix.h44 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 DTessellation.h24 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 DStrokeHardwareTessellator.cpp110 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 DStrokeTessellator.h76 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 DMotionBlurEffect.cpp141 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 DGrVx.h14 // 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 DAtlasPathRenderer.cpp31 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 DVectorTypes.h16 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 DSkGeometry.cpp449 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 DSkM44.cpp17 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 DSkGlyph.h131 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 DSkVx.h11 // 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 Dsimd_int_capabilities.cpp34 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 Dsimd_float_capabilities.cpp34 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...]

Completed in 16 milliseconds

12