a845c35880f8434619ac299e8af47aa6a5049e8d |
|
02-May-2017 |
Yang Ni <yangni@google.com> |
Use different .so names in a debug context Bug: 37670543 Bug: 36006390 Bug: 37679566 Bug: 37636434 In debug context, a script is forced to be recompiled every time it is initialized. To avoid the same .so file being written to by another thread, while it is being loaded and used by one thread, do not save the .so file. Delete it right after loading it. Test: RefocusTest and RSTest (including ScriptGroup2 tests) with debug.rs.debug set to 1 and CTS on Angler Change-Id: If63e3d21e3d9abd007a66e0ec79c9e6f1c9f13a0
/frameworks/rs/cpu_ref/rsCpuExecutable.h
|
82e135c4bbe18855d8ed02632bb074f8da0b96e0 |
|
28-Feb-2017 |
Miao Wang <miaowang@google.com> |
Remove libutils.so dependency from libRSDriver, libRSCpuRef, and most parts of libRS_internal. NOTE: we're resolving dependencies to provide a model for vendors. For us, all this code is above the HAL, thus the dependencies are acceptable; whereas for vendors, their equivalent of this code is below the HAL, and so the dependencies are not acceptable. This CL resolves the libutils dependency by: - Implement the timings functions in android::renderscript namespace using NDK APIs, instead of using libutils counterparts. - Replace android::Vector and android::String8 by std::vector and std::string. - PROPERTY_VALUE_MAX is replaced as PROP_VALUE_MAX. This CL didn't resolve the libutils dependency of rsFont.cpp and rsDebugger.cpp in libRS_internal: The dependent functionality in rsDebugHelper.h is off by default, and only intended for use during development; and rsFont.cpp is part of graphics API which is not implemented below the HAL and is not used as a model by vendors. Additionally, this CL fixed the bug that mNodes was sorted in a decreasing order. Nodes in ScriptGroup should be executed in ascending order. The bad sort was only for support lib; so there was a previously-unknown bug in support lib implementation of ScriptGroup. Background: libutils contains a collection of things like Vector, String8, CallStack. It served the purpose similar to a STL library, when there was no stable STL implementation available in Android. And most importantly, it is not part of NDK. Support lib used to use our own implementations of android::Vector and android::String8, because it can only depend on NDK, similarly for the timing related functions. As part of the Treble requirements, native RS, including vendor version libRS_internal, libRSDriver, libRSCpuRef could only depend on NDK too. So we need to break the dependency on libutils. And since we now have reasonable support of STLs, we should use that instead. Bug: 34396220 Test: mm, and all CTS tests pass on Bullhead; RsTest and RSTest_CompatLib (both native and compat path) also pass. Change-Id: Ib9a37d16235c1dcd0f5bae3b95c374e394483c91
/frameworks/rs/cpu_ref/rsCpuExecutable.h
|
ae2ec3febedfc29376b9104413fb4042028f1265 |
|
01-Jun-2016 |
David Gross <dgross@google.com> |
Delete simple reduction implementation. Bug: 27298560 Change-Id: I8c3d568e98aaf0b7d86881c985d13ed5b8e95338
/frameworks/rs/cpu_ref/rsCpuExecutable.h
|
5e48002cc4a11e9ce63852a77488cfb9f6765c2b |
|
06-Apr-2016 |
Yang Ni <yangni@google.com> |
Avoid accessing TLS in rsClearObject() Bug: 27874893 Bug: 27925095 rsClearObject() may be called on rsContextDestroy() in the JNI thread, where TLS is not initialized. This also reverted Icca50fade1199b6f530f963e9e694366b7d8cf67 that made rsContextDestroy() go through the FIFO. rsContextDestroy() must happen off the FIFO, since it joins the FIFO consuming thread. Both the rsClearObject() change and the rsContextDestroy() revert need to go together to make RenderScript and Camera CTS tests pass. Hence this single CL for both changes. Change-Id: I5f1d91a4cc1ce9bf2b3386fbef6f1171638b5266 (cherry picked from commit ade3137c22dd91694742145c2d5fe9d6bae17516)
/frameworks/rs/cpu_ref/rsCpuExecutable.h
|
6c1876bbef1b2c89975dce91230a168bd2d2ce4c |
|
15-Jan-2016 |
David Gross <dgross@google.com> |
Support for general reduction kernels. Requires coordinated change in frameworks/base. Requires coordinated change in frameworks/compile/libbcc in order for RsTest to run. At present, general reduction kernels are run single-threaded. Also: Remove dead struct field MTLaunchStructForEach::sig. Bug: 23535724 Change-Id: Ice17ccf20a902f8a106eaa62ec071d46e3c0ad8c
/frameworks/rs/cpu_ref/rsCpuExecutable.h
|
14ce007a633b10e3b9a3fae29d8f53a7e8c9b59f |
|
31-Jul-2015 |
Matt Wala <wala@google.com> |
Add a basic implementation of the reduce kernel API to the CPU reference implementation. Bug: 22631253 For now, this just runs a serial reduction on one thread. Change-Id: I34c96d24bb6f44274de72bb53160abcf79d143b0
/frameworks/rs/cpu_ref/rsCpuExecutable.h
|
1efae29f4bbe6c165caf6dfc4b89cf8a5f8c469b |
|
28-Jun-2015 |
Yang Ni <yangni@google.com> |
Avoid overwriting shared library file that is open b/21949580 Writing different contents to an existing .so file, which is currently open, may corrupt its globals and code. Choose a different file name instead. Change-Id: I3e649b09a55b43339283aa1c46f2844c66434c17 (cherry picked from commit 9844cffc8af28c4829012bc0c48f85d04b671f88)
/frameworks/rs/cpu_ref/rsCpuExecutable.h
|
5aa018cc36e589b07674957714d27ae3d1fa1c4e |
|
21-May-2015 |
Stephen Hines <srhines@google.com> |
Update RS driver to support extraction of global variable properties. Bug: 20306487 This patch adds some new enums to classify properties (such as "static", "constant", and "pointer") for global variables. The reference driver is also extended to provide methods to examine these properties (when the bitcode is compiled with bcc). Change-Id: I331756f8a8990caf5ebdf85599060434a7cfdcb7
/frameworks/rs/cpu_ref/rsCpuExecutable.h
|
1de97c307624f57d95281ebaa77c2129e66e21bc |
|
11-May-2015 |
Jason Sams <jsams@google.com> |
Merge "Add RSGlobalInfoPass information to RS driver."
|
4c368af7e705f0bcb77fa99495b2e33ef20d2699 |
|
06-May-2015 |
Stephen Hines <srhines@google.com> |
Add a way to link against different driver names. The existing linker path hard-coded "-lRSDriver" into the command line, but this won't work for partner drivers that have a different implementation loaded. In order to still properly handle use of the CPU driver, this needs to change depending on whether we actually loaded an OVERRIDE_RS_DRIVER or not. Change-Id: I0c4a4f12f5db819b234952bc8f364ac6300f147b
/frameworks/rs/cpu_ref/rsCpuExecutable.h
|
8409d6414dd4a42aa59779fcfe9fce18648cb135 |
|
29-Apr-2015 |
Stephen Hines <srhines@google.com> |
Add RSGlobalInfoPass information to RS driver. Bug: 20306487 This change enables vendor drivers to configure support for including additional information about global variables in the emitted CPU code. This information includes the number of total global variables, the names of these variables, the addresses of these variables and the sizes of these variables. The driver can also select whether the information includes constant (immutable) globals or not. The reference driver defaults to embedding information about each of the existing, non-constant global variables. Change-Id: I1e55fc3f08e518f04eeee3e4f9dc7b6ea3b80d7c
/frameworks/rs/cpu_ref/rsCpuExecutable.h
|
cb17015fed6b11a5028f31cc804a3847e379945d |
|
16-Apr-2015 |
Yang Ni <yangni@google.com> |
Dedup checksum calculation routines I introduced a separate routine to cacluate checksum for ScriptGroup in my previous CL, in addition to the one we use for regular scripts. This CL removes the new one and uses the old one. While I am on it, I made some other minor changes, e.g., changing mBuildChecksum in RsdCpuScriptIml from char* to uint32_t, and a few other minor cleanups in ScriptGroup2 implementation. Change-Id: I168fdbb4e7bd14f1549a687e7b0d0ca6dd4da866
/frameworks/rs/cpu_ref/rsCpuExecutable.h
|
062c287f573ecc06c38ee4295e5627e12c52ac3d |
|
21-Feb-2015 |
Yang Ni <yangni@google.com> |
Runtime support for Script Group as single module Also made two other cleanups: - Changed KernelID/InvokeID into IDBase in class Closure Rather than having two fields in class Closure, one of type ScriptKernelID and the other InovkeID, use a single field of the common base class IDBase. Added a boolean field to indicate whether it is kernel or invoke, since -fno-rtti is on. - Removed user pointer from CPU closure Change-Id: I5553f86b2e58325f85649078d48685a38f12d62f
/frameworks/rs/cpu_ref/rsCpuExecutable.h
|
aa6757ffc1b23d771566439c3179fdbc1e5ba569 |
|
14-Feb-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Add build fingerprint and ensure match on .so load bug 19216507 If ro.debuggable system property is set, - Compute the Adler32 checksum of bitcode, compiler arguments, bcc, libclcore files. - On shared object load, check that there is an embedded checksum value in .rs.info and it matches the value computed in the previous step. The .so is not loaded if the checksums don't match. - If invoking bcc, pass the checksum as an argument. If ro.debuggable is not set, a constant checksum is added to .rs.info. But it is never checked. Change-Id: I0a9d16b34148b748daf744007a8515511714a5a5
/frameworks/rs/cpu_ref/rsCpuExecutable.h
|
2abfcc6d129fe3defddef4540aa95cc445c03a7a |
|
18-Feb-2015 |
Yang Ni <yangni@google.com> |
Moved class ScriptExecutable to its own module b/19283946 This move also included the related class SharedObjectUtils. Change-Id: Iefd587b659c4ad99340c330955b41cd92df45563
/frameworks/rs/cpu_ref/rsCpuExecutable.h
|