OpenGrok
Home
Sort by relevance
Sort by last modified time
Full Search
Definition
Symbol
File Path
History
|
|
Help
Searched
full:portable
(Results
126 - 150
of
1506
) sorted by null
1
2
3
4
5
6
7
8
9
10
11
>>
/cts/tools/vm-tests-tf/etc/
starttests
55
if [ "$selection" = "--
portable
" ]; then
57
interpreter="
portable
"
86
echo "Usage: vm-tests [--help|--
portable
] [<mnemonic>]"
89
echo " --
portable
uses the
portable
interpreter;"
/external/skia/site/dev/contrib/
simd.md
4
Most hot software paths in Skia are implemented with processor-specific SIMD instructions. For graphics performance, the parallelism from SIMD is essential: there is simply no realistic way to eek the same performance out of
portable
C++ code as we can from the SSE family of instruction sets on x86 or from NEON on ARM or from MIPS32's DSP instructions. Depending on the particular code path and math involved, we see 2, 4, 8, or even ~16x performance increases over
portable
code when really exploiting the processor-specific SIMD instructions.
6
But the SIMD code we've piled up over the years has some serious problems. It's often quite low-level, with poor factoring leading to verbose, bug prone, and difficult to read code. SIMD instrinsic types and functions take a good long while to get used to reading, let alone writing, and assembly is generally just a complete non-starter. SIMD coverage of Skia methods is not dense: a particular drawing routine might be specialized for NEON but not for SSE, or might have a MIPS DSP implementation but no NEON. Even when we have full instruction set coverage, the implementations of these specialized routines may not produce identical results, either when compared with each other or with our
portable
fallback code. The SIMD implementations are often simply incorrect, but the code is so fragile and difficult to understand, we can't fix it. There are long lived bugs in our tracker involving crashes and buffer under- and overflows that we simply cannot fix because no one on the team understands the code involved. And finally, to top it all off, the code isn't always even really that fast.
13
We're going to wrap low-level platform-specific instrinsics with zero-cost abstractions with interfaces matching Skia's higher-level-but-still-quite-low-level use cases. Skia code will write to this interface _once_, which then compiles to efficient SSE, NEON, or
portable
code (MIPS is quite TBD, for now group it conceptually under
portable
code) via platform-specific backends. The key here is to find the right sweet spot of abstraction that allows us to express the graphical concepts we want in Skia while allowing each of those platform-specific backends flexibility to implement those concepts as efficiently as possible.
20
Wrapping floats with an API that allows efficient implementation on SSE and NEON is by far the easiest task involved here. Both SSE and NEON naturally work with 128-bit vectors of 4 floats, and they have a near 1-to-1 correspondence between operations. Indeed, the correspondence is so close that it's tempting to solve this problem by picking one set of intrinsics, e.g. NEON, and just `#define`ing
portable
and SSE implementations of NEON:
37
As a convenience, `SkNf<N>` has two default implementations: `SkNf<1>` performs all these operations on a single float, and the generic `SkNf<N>` simply recurses onto two `SkNf<N/2>`. This allows our different backends to inject specialiations where most natural: the
portable
backend does nothing, so all `SkNf<N>` recurse down to the default `SkNf<1>`; the NEON backend specializes `SkNf<2>` with `float32x2_t` and 64-bit SIMD methods, and `SkNf<4>` with `float32x4_t` and 128-bit SIMD methods; the SSE backend specializes both `SkNf<4>` and `SkNf<2>` to use the full or lower half of an `__m128` vector, respectively. A future AVX backend could simply drop in an `SkNf<8>` specialization.
51
In all these cases, we have been able to write a single implementation, producing the same results cross-platform. The first three of those sites using Sk4f are entirely newly vectorized, and run much faster than the previous
portable
implementations. The 3 Sk4f transfermodes replaced
portable
, SSE, and NEON implementations which all produced different results, and the Sk4f versions are all faster than their predecessors.
53
`SkColorCubeFilter` stands out as a particularly good example of how and why to use Sk4f over custom platform-specific intrinsics. Starting from some
portable
code and a rather slow SSE-only sketch, a Google Chromium dev, an Intel contributor, and I worked (…)
[
all
...]
/dalvik/docs/
embedded-vm-control.html
164
interpreter cores. These are referred to as "fast", "
portable
", and
167
constrast, the "
portable
" interpreter is written in C and expected to
169
of "
portable
" that includes support for profiling and single-stepping.
176
<p>The VM allows you to choose between "fast", "
portable
", and "jit" with an
181
<p>To select the "
portable
" interpreter, you would use:
182
<pre>adb shell setprop dalvik.vm.execution-mode int:
portable
</pre>
190
"
portable
" version. (When we have optimized versions for all popular
/external/skia/src/opts/
SkColor_opts_SSE2.h
45
//
Portable
version SkAlphaMulQ is in SkColorPriv.h.
209
//
Portable
version is SkPMSrcOver in SkColorPriv.h.
216
//
Portable
version is SkBlendARGB32 in SkColorPriv.h.
/platform_testing/tests/androidbvt/src/com/android/androidbvt/
ConnectivityWifiTests.java
143
mDevice.wait(Until.findObject(By.text("Tethering &
portable
hotspot")),
147
mDevice.wait(Until.hasObject(By.text("
Portable
hotspot AndroidAP active")),
150
mDevice.wait(Until.findObject(By.text("
Portable
Wi?Fi hotspot")),
/prebuilts/python/darwin-x86/2.7.5/lib/python2.7/distutils/tests/
xxmodule.c
99
* to be
portable
to Windows without using C++. */
217
* to be
portable
to Windows without using C++. */
272
* to be
portable
to Windows without using C++. */
/prebuilts/python/linux-x86/2.7.5/lib/python2.7/distutils/tests/
xxmodule.c
99
* to be
portable
to Windows without using C++. */
217
* to be
portable
to Windows without using C++. */
272
* to be
portable
to Windows without using C++. */
/external/bison/darwin-lib/sys/
stat.h
638
_GL_WARN_ON_USE (fchmodat, "fchmodat is not
portable
- "
692
_GL_WARN_ON_USE (fstatat, "fstatat is not
portable
- "
722
_GL_WARN_ON_USE (futimens, "futimens is not
portable
- "
841
_GL_WARN_ON_USE (mkdirat, "mkdirat is not
portable
- "
867
_GL_WARN_ON_USE (mkfifo, "mkfifo is not
portable
- "
883
_GL_WARN_ON_USE (mkfifoat, "mkfifoat is not
portable
- "
910
_GL_WARN_ON_USE (mknod, "mknod is not
portable
- "
928
_GL_WARN_ON_USE (mknodat, "mknodat is not
portable
- "
[
all
...]
/external/bison/lib/
fseterr.c
52
/*
Portable
fallback, based on an idea by Rich Felker.
strerror.c
53
even if the system strerror is, but
portable
programs shouldn't
sys_stat.in.h
326
_GL_WARN_ON_USE (fchmodat, "fchmodat is not
portable
- "
380
_GL_WARN_ON_USE (fstatat, "fstatat is not
portable
- "
410
_GL_WARN_ON_USE (futimens, "futimens is not
portable
- "
529
_GL_WARN_ON_USE (mkdirat, "mkdirat is not
portable
- "
555
_GL_WARN_ON_USE (mkfifo, "mkfifo is not
portable
- "
571
_GL_WARN_ON_USE (mkfifoat, "mkfifoat is not
portable
- "
598
_GL_WARN_ON_USE (mknod, "mknod is not
portable
- "
616
_GL_WARN_ON_USE (mknodat, "mknodat is not
portable
- "
720
_GL_WARN_ON_USE (utimensat, "utimensat is not
portable
- "
verify.h
44
be
portable
, R should be an integer constant expression. Unlike
77
somehow be embedded into a declaration. To be
portable
, this
99
macro solves this problem, but is not
portable
.)
217
be
portable
, R should be an integer constant expression. Unlike
/external/bison/linux-lib/sys/
stat.h
638
_GL_WARN_ON_USE (fchmodat, "fchmodat is not
portable
- "
692
_GL_WARN_ON_USE (fstatat, "fstatat is not
portable
- "
722
_GL_WARN_ON_USE (futimens, "futimens is not
portable
- "
841
_GL_WARN_ON_USE (mkdirat, "mkdirat is not
portable
- "
867
_GL_WARN_ON_USE (mkfifo, "mkfifo is not
portable
- "
883
_GL_WARN_ON_USE (mkfifoat, "mkfifoat is not
portable
- "
910
_GL_WARN_ON_USE (mknod, "mknod is not
portable
- "
928
_GL_WARN_ON_USE (mknodat, "mknodat is not
portable
- "
[
all
...]
/external/bison/m4/
fpieee.m4
17
dnl This cannot be done in a
portable
way: it depends on the compiler,
/external/c-ares/
ares_library_init.c
72
* to WinXP then c-ares uses
portable
rand() function. Then don't error here.
/external/chromium-trace/catapult/telemetry/third_party/pyserial/serial/
__init__.py
3
#
portable
serial port access with python
/external/chromium-trace/catapult/third_party/typ/typ/
__init__.py
45
portable
and easily testable code by wrapping the multiprocessing,
/external/compiler-rt/lib/sanitizer_common/
sanitizer_report_decorator.h
24
// FIXME: This is not
portable
. It assumes the special strings are printed to
/external/curl/docs/examples/
multi-single.c
37
/*
Portable
sleep for platforms other than Windows. */
/external/curl/docs/libcurl/
curl_getenv.3
31
curl_getenv() is a
portable
wrapper for the getenv() function, meant to
/external/curl/include/
README
53
To figure out how to do good and
portable
checks for features, operating
/external/curl/lib/
nonblock.c
45
*
portable
.
/external/curl/src/
Makefile.inc
4
# ever want to change this in a
portable
manner then we should consider
/external/eigen/bench/btl/generic_bench/timers/
mixed_perf_analyzer.hh
26
// choose
portable
perf analyzer for long calculations and x86 analyser for short ones
/external/fec/
dsp.3
30
available; otherwise, a
portable
C version is used.
Completed in 1772 milliseconds
1
2
3
4
5
6
7
8
9
10
11
>>