History log of /frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ef6acb98982393e36cad52f67e691d75b6a46cfd 22-Mar-2017 Yang Ni <yangni@google.com> Removed incorrect asserts

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
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
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/rsCpuScriptGroup.cpp
462de21ac2e1773b99aedee012adb374e476ae36 16-Nov-2016 Chih-Hung Hsieh <chh@google.com> Fix google-build-using-namespace warnings in cpu_ref.

* Remove "using namespace ..." statements.
* Replace them with using declarations of the required names.
* Enclose the C++ methods and static and extern "C" functions with
namespace android and renderscript.
* Keep global C++ functions as-is and add using declarations for them.

Bug: 32670901
Test: build with WITH_TIDY=1
Change-Id: I818de466e8786a6c4f9ce0cd8e0fe027f34d7fad
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
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/rsCpuScriptGroup.cpp
b0abb140ac51b93d1a85aadaa63fe057f2d29850 12-Mar-2015 David Gross <dgross@google.com> Pass RsExpandKernelDriverInfo not RsExpandKernelParams.

Which is to say: retire RsExpandKernelParams and pass RsExpandKernelDriverInfo
directly to kernel wrapper functions instead.

Requires related change in frameworks/compile/libbcc.

Change-Id: I453f45ec18f389e88e27fcfa57ddf245d077cb98
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
b8353c5943f4038fd7f08db3d958390ce9418798 15-Feb-2015 Yang Ni <yangni@google.com> Revert "Replaced android::Vector with std::vector."

b/19148482

This reverts commit 93d6bc872b7d9fba63abfa7513d56b38d9c3d371.

I also made some changes to Make it work with HEAD.

Change-Id: I5e516976ec1d85ffe1cf388c01795348a9441982
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
bf2111d3b3de310932099514f06924e48fa1d7b2 27-Jan-2015 Jason Sams <jsams@google.com> add array launch support.

Change-Id: I66cd89b5b44eafa92f391708a06464cd7cdde3ed
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
1ffd86b448d78366190c540f98f8b6d641cdb6cf 07-Jan-2015 Yang Ni <yangni@google.com> New Script Group API: runtime and cpu driver support.

Change-Id: I9c612cf8874aabaf0ca7d1640567464c71ed3070
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
44bef6fba6244292b751387f3d6c31cca96c28ad 12-Aug-2014 Chris Wailes <chriswailes@google.com> Replace NULL macros with nullptr literals.

Change-Id: I918c40879aa547438f77e7d1a95fa2aa33bec398
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
93d6bc872b7d9fba63abfa7513d56b38d9c3d371 29-Jul-2014 Chris Wailes <chriswailes@google.com> Replaced android::Vector with std::vector.

Change-Id: I4c6abd964dc4b1412ec2e592fc8e835fecfe53f6
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
9ed79105cc6a8dbfaf959875249f36022cc2c798 26-Jul-2014 Chris Wailes <chriswailes@google.com> Remove the instep parameter.

This patch removes the instep parameter from calls to expanded kernels and
from the CPU reference implementation intrinsics.

Change-Id: I059db548a57702c576963f6b17a002b2ee393cdb
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
f37121300217d3b39ab66dd9c8881bcbcad932df 17-Jul-2014 Chris Wailes <chriswailes@google.com> Collapse code paths for single- and multi-input kernels.

This patch simplifies the RenderScript driver and CPU reference implementation
by removing the distinction between sing- and multi-input kernels in many
places. The distinction is maintained in some places due to the need to
maintain backwards compatibility. This permits the deletion of some functions
and struct members that are no longer needed. Several related functions were
also cleaned up.

Change-Id: Id70a223ea5e3aa2b0b935b2b7f9af933339ae8a4
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
4b2bea3dc20865f3a198797702e19912a6a2171c 13-Aug-2014 Stephen Hines <srhines@google.com> Revert "Collapse code paths for single- and multi-input kernels."

This reverts commit 818cfa034e257c7bb48356257f5cb67334e19aa6.

Change-Id: I59f39f52e6c8f60bb01cbcb8ccf2215eaf46a57f
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
818cfa034e257c7bb48356257f5cb67334e19aa6 17-Jul-2014 Chris Wailes <chriswailes@google.com> Collapse code paths for single- and multi-input kernels.

This patch simplifies the RenderScript driver and CPU reference implementation
by removing the distinction between sing- and multi-input kernels in many
places. The distinction is maintained in some places due to the need to
maintain backwards compatibility. This permits the deletion of some functions
and struct members that are no longer needed. Several related functions were
also cleaned up.

Change-Id: I77e4b155cc7ca1581b05bf901c70ae53a9ff0b12
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
5f6f16fe612e1c30732becc66205500994889ac9 25-Jul-2014 Yang Ni <yangni@google.com> Validate input/output for a ScriptGroup.

If a script group requires input or output allocations, make sure
they are set before starting the execution of the script group.
If any allocation is missing, skip the execution and set a bad
value error with a message.

Change-Id: I7ee2da96aca3e6c9820225e6b2c39cb9378cb42f
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
80ef693674f69c0343c41564e30f80e7fb513b60 08-Jul-2014 Chris Wailes <chriswailes@google.com> Split the RsForEachStubParamStruct in two.

This patch splits the RsForEachStubParamStruct into two smaller structs, one
used specifically by the driver and the other by the expanded kernels. Doing
so makes it clearer what data is used where. In addition, fewer data are
copied between memory locations during kernel invocation.

Several fields that were not being used were removed from the structs.

Change-Id: I7788ef754add44463b17a6b571c7cde6e73b9712
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
c78839b5bbcffae7d64a5a1c9aa60c9a4c5d3918 11-Sep-2013 Stephen Hines <srhines@google.com> Detect use of RS objects in kernels to disable a ScriptGroup optimization.

Bug: 10394865

This change disables a ScriptGroup optimization when we can't guarantee
that there is no implicit ordering between two kernels. In this case, it
is possible to communicate between kernels using the same bound global
RS object (like Allocation). A subsequent kernel in the ScriptGroup could
accidentally pick up stale data, leading to incorrect results.

Now, we disable this optimization whenever we see binds/sets of variables
that are potentiall RS object types for a given Script/kernel. This is
overly conservative, but sufficient for now.

This change also fixes a small issue with preLaunch/postLaunch missing for
the default ScriptGroup execution case.

Change-Id: I0d19d200cc8dc397d68008a4df6ea423b1e4d04f
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
17e3cdc24776d8fdbf1ce16287b9b4dcd516708f 10-Sep-2013 Jason Sams <jsams@google.com> Fix ScriptGroup performance regression

bug 10151545

Change-Id: Ica4a30c6fe8718f7fdbff0b446885d9ac7083769
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
b0934b67b95cc27e2358c2aa4db5f7c1067c8f9b 04-Jul-2013 Stephen Hines <srhines@google.com> Remove libutils and fix rsDebug for RS support library.

Bug: 9664050

Our bitcode runtime library translates vector rsDebug() calls into passing
their parameters via pointers. The previous version of libRSSupport.so was
being created with non-pointer versions of these routines accidentally.
This change also fixes a missing permission issue for ImageProcessing2, so
that the compatibility library can be verified.

This change also removes the use of libutils by switching the implementation of
String8/Vector in the compatibility library to internal types backed by
libstlport_static.

Change-Id: I20da75e8c19a82a42dc2bceaba1937d21372db84
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
0b575de8ed0b628d84d256f5846500b0385979bd 15-Mar-2013 Tim Murray <timmurray@google.com> Add x86 server support.

Change-Id: I674acaf15b67afa48bc736f72942a11e2e38e940
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
93eacc7ce0aad4314b4cb41a281f59ce54bb3286 18-Dec-2012 Jason Sams <jsams@google.com> Cleanup diff with compat.

Change-Id: Ieedcdec03ccb05cac68cbebbd398e07cb885f4d3
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp
709a0978ae141198018ca9769f8d96292a8928e6 16-Nov-2012 Jason Sams <jsams@google.com> Separate CPU driver impl from reference driver.

Change-Id: Ifb484edda665959b81d7b1f890d108bfa20a535d
/frameworks/rs/cpu_ref/rsCpuScriptGroup.cpp