Age | Commit message (Collapse) | Author |
|
The RS libs are used by RS HAL implementations which are Same-process
HALs. In order to make the RS libs available to the HALs, they are
marked as VNDK-SP.
Bug: 64425518
Test: BOARD_VNDK_VERSION=current m -j libRSDriver.vendor
Test: BOARD_VNDK_VERSION=current m -j libRS_internal.vendor
Test: BOARD_VNDK_VERSION=current m -j libRSCpuRef.vendor
Change-Id: Ia5c9d59b98b6a910a8cb76be1e823da542ca043a
|
|
fbea329269
am: 701e5d0b8b
Change-Id: I1dab75f1bd2073ad396cecda3eb571b490b4d871
|
|
am: f107b0ce6d
Change-Id: I570acc44afadbe68ef2dcfe2cd2b73ce0a36b7a3
|
|
- The most recent gemmlowp rebase changed the default value of
MaxNumThreads from 0 to 1, which means by default it is running
single-threaded.
- This change reset MaxNumThreads to 0 for BNNM Intrinsic.
Exempt-From-Owner-Approval: Only current owner is this a mailing list
android-renderscript-dev+review@google.com
And mailing lists aren't currently supported.
Test: mm
Test: Verified the performance increase is about 2~3X on sailfish.
Test: All BLAS CTS pass
Change-Id: I01dda1915f4d427547dbd907c4533771b7669593
|
|
am: da43d5866f
Change-Id: If4d31ee73f7229c18bff98ddba07a09bb22bf261
|
|
When ld.mc links the compiled bc, it now correctly uses libcompiler_rt
and libRSDriver from the vndk-sp directory. This is because when the bc
is loaded inside the app process, it is provided with the libs in
vndk-sp directory.
Bug: 62848943
Test: Renderscript app (e.g. CameraScript) runs well.
Test: logcat | grep ld.mc shows /system/lib/vndk-sp/libcompiler_rt.so
and --library-path=/system/lib/vndk-sp
Change-Id: Ib6354081af797f395ff042ebe87731311d768784
|
|
am: 8d421ca1f0
Change-Id: Ia85eff89e376f09fac5cf203b2f6bf16b558604d
|
|
bcc loads vendor plugin in its address space. Since bcc is a system
process, the vendor plugin must be loaded from the sphal namespace where
VNDK-SP libraries are provided. This is to ensure that the vendor plugin
is linked against to the VNDK-SP version of libraries. It also prevents
the vendor plugin from using non-VNDK-SP libs such as libLLVM.so.
Bug: 62517583
Test: a sample renderscript app (CameraScript) runs well
Change-Id: Id014cc4f3ea2d3980b11ef219422457e356124a5
|
|
am: 15b42f5918
Change-Id: Icc96540c7002931893b681eb2cc7fe3af4527c57
|
|
Bug: 38418449
Bug: 62028512
Bug: 37955136
Two major changes:
(More motivation/explanation/discussion are in the tagged bugs.)
1) Added the fourth variant of libclcore.bc, libclcore_debug_g.bc,
which both gets compiled with -g -O0 and provides runtime range
checking. This is needed for debug context related CTS tests to pass
when they are compiled with flags -g -O0.
2) Removed Element setters and getters defined under RS_G_RUNTIME.
The removed code is neither necessary or correct. After the
RS_G_RUNTIME specific setter/getter implementation was removed,
a bug in the default setter/getter implementation showed up with -O0
compilation as described in Bug 38418449, which caused segfaults
due to mismatch argument type between callers and callees of
rsSetElementAtImpl_<T>() and __rsAllocationVStoreImpl_<T>().
To fix it, I adjusted argument type in rsSetElementAtImpl_<T>() and
__rsAllocationVStoreXImpl_<T> defined in
frameworks/rs/driver/runtime/ll64/allocation.ll to match clang-
generated code from frameworks/rs/driver/runtime/rs_allocation.c.
E.g., char4 was <4 x i8> in ll64/allocation.ll, but was i32 in code
generated by clang. This caused segfaults on calls to the affected
functions in the final arm64-v8a code. short2 and half2 also have the
issue and fix.
Test: CTS on Angler and X86_64:
Test: With tests compiled using -g -O0 and system property
debug.rs.debug set to 1;
Test: With tests compiled using -g -O0;
Test: With tests compiled using the default flags;
Test: With tests compiled using the default flags and system property
debug.rs.debug set to 1.
Test: LLDB tests on X86_64 with no additional failures than those are
known to fail.
Change-Id: I23bd9ab6c7648d2762a77977f08ad3f20e31941c
|
|
Part of the CPU driver runtime assumed non-null input allocation and
blindly dereferenced the handle of the input allocation. This caused
crashes when running RsBalls, in which a null input allocation was given
to rsForEach(). This CL fixes the crashing problem by guarding those
codes dereferencing the input allocation with null pointer checks.
Bug: 37754476
Test: CTS with and without debug.rs.debug=1, RsBalls
Change-Id: I8bec116fa8b846c6801353234e24b07d7a0fbbf4
(cherry picked from commit efc33a921195c313007d9471efcd00cc825b0055)
|
|
am: 2397fd9175
Change-Id: Ic2964c0ca939ea22db1f8ab962a97bb945bd4a3a
|
|
Part of the CPU driver runtime assumed non-null input allocation and
blindly dereferenced the handle of the input allocation. This caused
crashes when running RsBalls, in which a null input allocation was given
to rsForEach(). This CL fixes the crashing problem by guarding those
codes dereferencing the input allocation with null pointer checks.
Bug: 37754476
Test: CTS with and without debug.rs.debug=1, RsBalls
Change-Id: I8bec116fa8b846c6801353234e24b07d7a0fbbf4
|
|
See build/soong/README.md for more information.
This reapplies If935ce5cc04da7801210acb49f0a9ed15fcf5889 with the
support modules disabled for unbundled builds to avoid conflicts
with the prebuilts in prebuilts/sdk/renderscript.
Also moves OVERRIDE_RS_DRIVER to be set for libRS_internal.
Test: m -j checkbuild
Change-Id: If935ce5cc04da7801210acb49f0a9ed15fcf5889
Merged-In: Ia98501a471ef5f090446c9fbe2dd1d3422021a6f
(cherry picked from commit e5b2262c7337d13cdfd6852614c1743c19381164)
|
|
Update oc-dev-plus-aosp with the changes between
If935ce5cc04da7801210acb49f0a9ed15fcf5889 and
Ia98501a471ef5f090446c9fbe2dd1d3422021a6f.
Change-Id: I3f613064b7406bad98644de9c1a9833cf4af324a
Merged-In: Ia98501a471ef5f090446c9fbe2dd1d3422021a6f
|
|
See build/soong/README.md for more information.
Test: m -j checkbuild
Change-Id: If935ce5cc04da7801210acb49f0a9ed15fcf5889
Merged-In: If935ce5cc04da7801210acb49f0a9ed15fcf5889
(cherry picked from commit 3764dacb3c3a32a38e2539095b00c13a4daf23c8)
|
|
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
(cherry picked from commit a845c35880f8434619ac299e8af47aa6a5049e8d)
|
|
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
|
|
sizeof(*name) for clarity.
Fixes minor issues addressed in aosp/380576
Bug: 32511607
Test: mma, cts, vts
Change-Id: I8f2eca4bcc8c93671668a542dc6117df58979b56
(cherry picked from commit 94979da78cf5762c609a04dd42527edae03719a8)
|
|
sizeof(*name) for clarity.
Fixes minor issues addressed in aosp/380576
Bug: 32511607
Test: mma, cts, vts
Change-Id: I8f2eca4bcc8c93671668a542dc6117df58979b56
|
|
Replace unsafe strcpy and strcat with bounded strlcpy and strlcat.
Bug: 32511607
Test: mma, cts, vts
Change-Id: I92bc8142f82eaf78f4465bf061871cad864c53b8
(cherry picked from commit ca451c3280b6265a9b79273b4bf89e121a050cab)
|
|
|
|
Replace unsafe strcpy and strcat with bounded strlcpy and strlcat.
Bug: 32511607
Test: mma, cts, vts
Change-Id: I92bc8142f82eaf78f4465bf061871cad864c53b8
|
|
|
|
Breakpoints set on named ScriptGroups were never resolved by the
debugger due to aggressive optimizations by clang in release builds.
`debugHintScriptGroup2`, used by the debugger to inspect ScriptGroup
compilations at `optlevel == 0`, had its inner loop optimized away
completely as there are no visible side effects (where the ALOGV calls
are actually empty macros). This was fixed by using an `__asm__
__volatile__ ("")` construct as per the gcc docs:
noinline This function attribute prevents a function from being
considered for inlining. If the function does not have side-effects,
there are optimizations other than inlining that causes function
calls to be optimized away, although the function call is live. To
keep such calls from being optimized away, put `asm ("")` in the
called function, to serve as a special side-effect.
(see also
https://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html
https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#Common-Function-Attributes)
Although preventing the inner loop from being optimized away is enough
to get the function called, it is apparent that clang only sets up the
call frame with arguments that it can see are used inside the function
body, meaning that we had garbage values for `groupName` and
`groupNameSize` unless the symbol is weakly visible so that the compiler
can no longer introspect that the arguments are ignored.
Test: aosp_x86_64-eng (emulator)
- RsTest (32-bit, 64-bit)
- cts -m RenderscriptTest
- rs/lldb (required various other pending CLs)
Bug: 23535482
Change-Id: I24e23895e67d1ede8bf8e671165a3a6843a11082
Signed-off-by: Luke Drummond <luke.drummond@codeplay.com>
(cherry picked from commit 6e64e51a6a252bd88acfa72dac8372c863f524e0)
|
|
* changes:
Update tests to reflect recent changes in lldb upstream and librs
Add .rs.info versionInfo parser to the cpu_ref driver
|
|
|
|
Breakpoints set on named ScriptGroups were never resolved by the
debugger due to aggressive optimizations by clang in release builds.
`debugHintScriptGroup2`, used by the debugger to inspect ScriptGroup
compilations at `optlevel == 0`, had its inner loop optimized away
completely as there are no visible side effects (where the ALOGV calls
are actually empty macros). This was fixed by using an `__asm__
__volatile__ ("")` construct as per the gcc docs:
noinline This function attribute prevents a function from being
considered for inlining. If the function does not have side-effects,
there are optimizations other than inlining that causes function
calls to be optimized away, although the function call is live. To
keep such calls from being optimized away, put `asm ("")` in the
called function, to serve as a special side-effect.
(see also
https://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html
https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#Common-Function-Attributes)
Although preventing the inner loop from being optimized away is enough
to get the function called, it is apparent that clang only sets up the
call frame with arguments that it can see are used inside the function
body, meaning that we had garbage values for `groupName` and
`groupNameSize` unless the symbol is weakly visible so that the compiler
can no longer introspect that the arguments are ignored.
Test: aosp_x86_64-eng (emulator)
- RsTest (32-bit, 64-bit)
- cts -m RenderscriptTest
- rs/lldb (required various other pending CLs)
Bug: 23535482
Change-Id: I24e23895e67d1ede8bf8e671165a3a6843a11082
Signed-off-by: Luke Drummond <luke.drummond@codeplay.com>
|
|
ScriptIntrinsicBlend's forEachDstAtop had broken NEON and ASIMD
implementations and were bypassed.
This CL fixed these two and turned them back on in
RsdCpuScriptIntrinsicBlend::kernel().
Bug: b/22047392
Test: CTS and RsTest on Angler
Change-Id: Ifa41d74222606f1c04b7b4e3fe1b43eb932ead89
(cherry picked from commit e0c6f1d59fa8e995cdd80a41cc8ed1d6af35652e)
|
|
|
|
ScriptIntrinsicBlend's forEachDstAtop had broken NEON and ASIMD
implementations and were bypassed.
This CL fixed these two and turned them back on in
RsdCpuScriptIntrinsicBlend::kernel().
Bug: b/22047392
Test: CTS and RsTest on Angler
Change-Id: Ifa41d74222606f1c04b7b4e3fe1b43eb932ead89
|
|
This is used by lldb to check for a versioning mismatch between the
frontent and backend, but is not used by libRS. However, libRS should
not fail in its presence, so this CL enables the runtime to skip this
section if it is present.
This field is not checked for by the compatibility lib.
Test: aosp_x86_64-eng (emulator)
- libbcc/tests
- RsTest (32-bit, 64-bit)
- cts -m RenderscriptTest
- rs/lldb (required various other pending CLs)
Bug: 23535482
Change-Id: I3056dd08e7e14ff1094ead60756fd568131bcf4d
Signed-off-by: Luke Drummond <luke.drummond@codeplay.com>
(cherry picked from commit 341f30630d310f52297cf2d9867618cb7a1e8969)
|
|
This is used by lldb to check for a versioning mismatch between the
frontent and backend, but is not used by libRS. However, libRS should
not fail in its presence, so this CL enables the runtime to skip this
section if it is present.
This field is not checked for by the compatibility lib.
Test: aosp_x86_64-eng (emulator)
- libbcc/tests
- RsTest (32-bit, 64-bit)
- cts -m RenderscriptTest
- rs/lldb (required various other pending CLs)
Change-Id: I3056dd08e7e14ff1094ead60756fd568131bcf4d
Signed-off-by: Luke Drummond <luke.drummond@codeplay.com>
|
|
Bug: 34396220
Bug: 37067080
Test: mm
Change-Id: Ic35879e341f1a4357c6a8e9bdec8312d2507223f
|
|
am: b6bc4300ff
Change-Id: Iee45b66f9f5472fe0123a5560d9af9f03a220280
|
|
|
|
Bug: 32278517
RsExpandKernelDriverInfo.outLen is never initialized for any foreach
kernel or a script group. The value does not even apply to a script
group.
There should be no assert on it.
Test: CTS on x86 emulator and checked device logcat no longer has the
asserts in question.
Change-Id: Ib0c25f9978ef5364e8ef0f438243dae14688a634
|
|
available in PDK.
Bug: 36231835
Test: mm
Merged-In: I6e425dd8afd8f7df09de7b245263519d076c9b53
Change-Id: I6e425dd8afd8f7df09de7b245263519d076c9b53
|
|
available in PDK.
Bug: 36231835
Test: mm
Change-Id: I6e425dd8afd8f7df09de7b245263519d076c9b53
|
|
Test: mm
Change-Id: Ie8ebf3dc243c24924ba174b40d45029564dbbaff
|
|
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
|
|
This is a required side-effect of making IGraphicBufferProducer a
hybrid interface.
Test: Compiles
Bug: 33854657
Change-Id: I7ec1daed6c9ad1375d8c43c891eec67a0b803c79
|
|
Test: run & compile
Bug: n/a
Change-Id: I310db0db93b199063fbce9b849155d91173e1a8f
|
|
Test: mm
Change-Id: I710323b612cb7f6cce9e1250493c65148576e3c5
|
|
- Implement property_get using __system_property_get, remove
dependencies on cutils/properties.h.
- remove rsCompatibilityLib.cpp since it only contains propery_get, and
it is now in rsCppUtils.cpp.
- Disable ATRACE. The systrace is current done in Java level. If we
want to do it in the driver, we need to have our own implementation
similar to native/utils/trace.cc
- Remove CC_LIKELY macro.
Bug: 34396220
Test: build
Change-Id: I6a6cbcfb2ca15b9d1f09b9ce0579d39fdbe98727
|
|
cb970436a9 am: 36b4ae4166
am: 3929984985
Change-Id: Ie55253f7fc5bee7de97532d616090b86907788e6
|
|
- The RS_SERVER macros were intended to have a version of RenderScript
running on the desktop. It has not fully worked for a very long time.
Bug: 35473587
Test: build and CTS tests pass
Change-Id: I0da3fc9d4601951442384d05f9dbecaeddeff8cc
|
|
775b6823de
am: 02d7f59628
Change-Id: I9410ae992400848da44a9c5ef02f431f145232c2
|
|
Just fix a few include paths.
Bug: 34265954
Test: Compiled everything, ran a regular and a support lib app.
Change-Id: I5d608e58734e50c0d2ac895290ea2a66ebe46345
|
|
Some makefiles didn’t specify libui but included
headers from it directly.
It works because these headers are on the global
include path. With this change, though, rect.h
is not anymore (albeit exported from libui).
Test: built and booted device
Bug: 35164655
Change-Id: Ifdd2e8a75601856bf8bcb76fcf16b3f099ce2bdd
|