50 Commits

Author SHA1 Message Date
Xusong Wang
1f8dc651a8 Deprecate RS Java APIs.
This CL marks RenderScript Java APIs as deprecated.

Bug: 168711199
Test: m
Test: CtsRenderscriptTestCases
Test: CtsRsCppTestCases
Test: CtsRsBlasTestCases
Change-Id: Id271a794679d445c480d62c87ae6c8150f6901f8
Merged-In: Id271a794679d445c480d62c87ae6c8150f6901f8
(cherry picked from commit 8b4548c43a06290b5d9446c0235e65f21e9bfe5d)
2021-04-21 11:23:11 -07:00
Yang Ni
c48a09cce8 Destroy Allocation right away on exception
Bug: 28053584

To avoid holding the resource (surface) for too long.

Test: CTS on x86_64 emulator
Change-Id: I2fdec107c2a16b7dadbf78a9aee79c33423a3676
2017-05-05 15:32:34 +00:00
Miao Wang
3231e8e022 Update documentation about copyTo and copyFrom.
Bug: 23159764
Bug: 26862970

  - Add detailed description of AutoPadding
  - Add comments to all the copy related APIs.
  - Fix typos in the comments.

Change-Id: I2d045e0d90efd94f1407f88d3e35bcd42ea93fb9
2016-05-18 16:28:47 -07:00
Yang Ni
1b4df1697f Fixed BaseObj finalizer and destroy()
Bug: 28242626
Bug: 27972184
Bug: 27973681

This is resolving issues in ScriptGroup (V1) again.
In ScriptGroup.destroy(), we also need to consider the old API where
mClosures is not initialized.

Also cleaned up the finalizer for ScriptGroup and Allocation:
Since BaseObj.finalize() calls BaseObj.helpDestroy(), instead of
BaseObj.destroy(), there is no possibility that the finalizers of
child objects may race their parents finalizers. Note that
helpDestroy() does not try to recurse on child objects.

Change-Id: I9dbb2b60f8478f656f8a418c2b5fc8d6848aeef0
2016-04-22 10:21:18 -07:00
Yang Ni
e1798e4284 Destroy Type created by Allocation.createSized()
Bug: 27972184
Change-Id: I4f80c74079087eab20b75a701c56cde141322462
(cherry picked from commit 3444dbe025ad78cae9fd77a4d2203a1a806ae1af)
2016-04-12 15:11:31 -07:00
Yang Ni
0c6ed67c3a Merge "Added CloseGuard for BaseObj" into nyc-dev 2016-04-01 00:33:58 +00:00
Yang Ni
6484b6be5c Added CloseGuard for BaseObj
Bug: 27719830

To turn on warnings, apps have to add to their Activity.onCreate() method
the following code.

        StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
                               .detectLeakedClosableObjects()
                               .penaltyLog()
                               .build());

For Slang generated ScriptC derived classes, we assume their
constructors won't throw exceptions after calling the ScriptC
constructor. In addition, ScriptIntrinsic derived classes do not seem
to throw exceptions in their constructors either. Therefore, we can
leave the guard.open() call in the Script constructor. This may be
only an approximation, but allows us to add CloseGuard for script
objects without making changes to slang.

Change-Id: I77ed45239a60b85af5c811dee6c124fb53da9060
(cherry picked from commit eb4dd08ec132f83745b8b28fa7da58eb4478b5b9)
2016-03-31 15:57:23 -07:00
Miao Wang
ab9ab56e3d Merge "[RenderScript] Update documentation for Allocation.setAutoPadding()." into nyc-dev 2016-03-30 00:51:55 +00:00
Miao Wang
9ee7607615 [RenderScript] Update documentation for Allocation.setAutoPadding().
Bug: 26862970
Change-Id: Iaa88ac0266e5d2cac2837f1d13353aacc6177274
2016-03-29 17:42:40 -07:00
Pirama Arumuga Nainar
3934dadd58 [RenderScript] Fail with Exception from validateObjectIsPrimitiveArray
Bug: http://b/25982676

Instead of returning null from validateObjectIsPrimitiveArray, fail with
an exception.  The callers of this function do not check for null.

Change-Id: Idd2b50a7b137e8d2db7a334bb9a48c1b19ee2403
2016-03-28 12:01:48 -07:00
Pirama Arumuga Nainar
f51bb356de [RenderScript] Allow copyTo(short[]) etc for Float16 Allocations
http://b/27251511

Allow copyTo(short[]), copyFrom(short[]), and their 1D range and 2D
range variants to copy data between short[] arrays and Float16
Allocations.

Change-Id: I370584685c3b773c165bd718974ca736ed548339
2016-03-01 17:25:11 -08:00
Miao Wang
c29bcd0dcd [RenderScript] Unhide new Allocation APIs
Bug: 23535524

  - ByteBuffer getByteBuffer()
  - long getStride()
  - Allocation[] createAllocations(rs, type, usage, num)
  - long getTimeStamp()

Change-Id: I0cad88c81f9f48c7aca59af159c49f506b234aee
2016-01-27 14:42:03 -08:00
Miao Wang
8c1509249c [RenderScript] Implement APIs for better multi-frame process support.
Bug: 23535524

 Two APIs added for multiframe processing:
 - createAllocations(...): To create an array of Allocations sharing the
   same Type and Usage. For USAGE_IO_INPUT Allocations, they also share
   the same BufferQueue.
 - getTimeStamp(): API to retrieve the time stamp associated with the
   most recent buffer.

Change-Id: I6b7b35d7dca5e87ee2f3db2ee17cb9cf824bcfe1
2016-01-26 14:40:44 -08:00
Miao Wang
0facf021ea [RenderScript] Add API to map Allocation mallocptr to Java ByteBuffer
Bug: 25926361
Bug: 23535524

  - Construct the ByteBuffer using the AllocationGetPointer.
  - Add an API to query the stride of the allocation.
  - Both ByteBuffer and Stride will be cached for normal Allocations.
    if using USAGE_IO, since after each ioReceive, the mallocPtr will
    change, getByteBuffer will always create a new one using the most
    up-to-date mallocPtr.

Change-Id: I5e84b6690e83bb062c383043275524d0e51e46eb
2016-01-25 16:12:37 -08:00
Chris Craik
a11ceb9e91 am 5fd0e46d: am 34a63ba4: Merge "Ensure RenderScript tracing is always balanced via try/finally"
* commit '5fd0e46d242f718de629ec07cf540fa24b4a72ec':
  Ensure RenderScript tracing is always balanced via try/finally
2015-06-04 19:00:29 +00:00
Chris Craik
06d2984871 Ensure RenderScript tracing is always balanced via try/finally
bug:21560057

Change-Id: I6709b81636822135848c10adca8ba425f3c2212e
2015-06-04 10:02:18 -07:00
Chris Craik
f77facd0b9 Fix RenderScript copy tracing sections
bug:21560057

Change-Id: I3b44d04bd908d9549ef7ada5f48f5d94e239d186
2015-06-04 09:50:15 -07:00
Chris Craik
48b0104374 am e63136a3: am 8c1e287b: Merge "Fix RenderScript copy tracing sections" into mnc-dev
* commit 'e63136a36ec6e5f22d53654c85b8b3eb0b19cb27':
  Fix RenderScript copy tracing sections
2015-06-01 23:21:50 +00:00
Chris Craik
5c705d63d7 Fix RenderScript copy tracing sections
bug:21560057

Change-Id: I3b44d04bd908d9549ef7ada5f48f5d94e239d186
2015-06-01 10:59:35 -07:00
Miao Wang
8374e25a9e am 77877609: Merge "[RenderScript] fix Allocation.copyToFieldPacker"
* commit '7787760961703239763afad9639517ce02259090':
  [RenderScript] fix Allocation.copyToFieldPacker
2015-05-19 21:17:28 +00:00
Miao Wang
bfa5e659e7 [RenderScript] fix Allocation.copyToFieldPacker
Change-Id: Iaba3333f9741238745fdb5c94f1b27b1015d50b2
2015-05-11 15:49:18 -07:00
Miao Wang
3c61327fa9 [RenderScript] hide Allocation.copyToFieldPacker()
bug: 21027883

Change-Id: I122392bc5206ff19ea52712576d7f363e5915231
2015-05-11 11:51:09 -07:00
Miao Wang
68e03ab998 am 13391109: am 2b300a99: am 782b4339: Merge "[RenderScript] typo fix in Allocation.java"
* commit '133911095ce0d9ef01766aa7b67a0a31b852e242':
  [RenderScript] typo fix in Allocation.java
2015-04-16 02:46:43 +00:00
Miao Wang
179e8b5351 [RenderScript] typo fix in Allocation.java
Change-Id: Id0eae76387d18c5bfed6cdbb52781b0dc3e4ae90
2015-04-15 17:44:32 -07:00
Miao Wang
edea751f64 am 1327fa9e: am 511eb660: am 6aed9ec1: Merge "[RenderScript] update exception reporting for copyTo() after autoPadding added."
* commit '1327fa9eb155eb57fe24a8aa90a18f57d706e86b':
  [RenderScript] update exception reporting for copyTo() after autoPadding added.
2015-04-03 18:18:01 +00:00
Miao Wang
d9b6328509 [RenderScript] update exception reporting for copyTo() after
autoPadding added.

 - This CL fixes recent CTS failures about copyPadded after
   lmp-mr1-dev changes pushed to aosp.

Change-Id: Ica1f4fd934cd83ca4357ea7e7c82dcc7f844b689
2015-04-03 09:15:39 -07:00
Miao Wang
d7ecab1e87 [RenderScript] Remove @hide for setAutoPadding(boolean).
Change-Id: I9e018436866989090be3896f894078ca0422189b
2015-03-26 18:00:15 -07:00
Miao Wang
258db504bc [RenderScript] Remove @hide for the new APIs for Allocation.CopyTo
Change-Id: I9ef476ae3e659d98d21c9246aa8e4969e00c14f1
2015-03-26 17:25:01 -07:00
Jason Sams
1e68bac5f8 Avoid duplicate surface creation.
Change-Id: I43104c8b48dd26681735940e6b2e1ba902af2020
2015-03-17 16:36:55 -07:00
Miao Wang
c1e2bf95ab am 4b5af9bc: Merge "[RenderScript] Update the java API about Allocation copyTo & From FieldPacker"
* commit '4b5af9bce10dbb8b6d5ff27a5f0c49f3498a6245':
  [RenderScript] Update the java API about Allocation copyTo & From FieldPacker
2015-03-06 01:10:38 +00:00
Miao Wang
a61832c8fd am 288e6f67: Merge "[RenderScript] AutoPadding & Unpadding for Vec3 Elements during copyTo & copyFrom."
* commit '288e6f67181ce74ec4b97b61def1b9510b1221d0':
  [RenderScript] AutoPadding & Unpadding for Vec3 Elements during copyTo & copyFrom.
2015-03-06 01:01:58 +00:00
Miao Wang
45cec0a971 [RenderScript] Update the java API about Allocation copyTo & From FieldPacker
Change-Id: I4e1b911d4cdfec8a841bc5a8bc615c64c50e8fc8
2015-03-05 16:52:05 -08:00
Miao Wang
87e908dfde [RenderScript] AutoPadding & Unpadding for Vec3 Elements during
copyTo & copyFrom.

Change-Id: I10b6fb235717e181ebb30b92e4dbe23e6183a29c
2015-03-04 15:50:11 -08:00
Miao Wang
411473de4a am caa8a8fb: Merge "[Renderscript] JAVA API update for Allocation.CopyTo add the following functions to make it more symmetric to copyFrom()."
* commit 'caa8a8fb9849f1d44ffab3117950ac1e7b02cd4d':
  [Renderscript] JAVA API update for Allocation.CopyTo add the following functions to make it more symmetric to copyFrom().
2015-03-03 01:11:18 +00:00
Miao Wang
c8e237e271 [Renderscript] JAVA API update for Allocation.CopyTo
add the following functions to make it more symmetric to copyFrom().

  - copy1DRangeToUnchecked, copy1DRangeTo
  - copy2DRangeToUnchecked, copy2DRangeTo
  - copy3DRangeToUnchecked, copy3DRangeTo
  - setFromFieldPacker, 2D and 3D variants
  - copyElementTo, (1D, 2D & 3D)

Change-Id: I6b896123e1c00cead552aa5b31a701b15dd70f85
2015-02-25 16:41:09 -08:00
Jason Sams
ec10f833b4 am 2a3cdf57: Merge "Implement array types"
automerge: 6e0ad25

* commit '6e0ad25ca8def88a48c9cc6436b12da7ff4600c2':
  Implement array types
2015-02-10 01:44:11 +00:00
Jason Sams
46ba27e3fd Implement array types
Change-Id: I1b83f21ea2aeaa4b9f5934aadcb69d4a1c1fea20
2015-02-06 17:45:15 -08:00
Miao Wang
4bd2c00d8d Merge "make Allocation.destroy() include setSurface(null) for USAGE_IO_OUTPUT (Native RS)" automerge: 9a55cbc
automerge: 58fd96c

* commit '58fd96c607de7f7f821a0b15fd37bc28323fcfde':
  make Allocation.destroy() include setSurface(null) for USAGE_IO_OUTPUT (Native RS)
2015-02-05 00:27:49 +00:00
Miao Wang
f0f6e80bae make Allocation.destroy() include setSurface(null) for USAGE_IO_OUTPUT
(Native RS)

Change-Id: I23041da03c2c928ceec76037804abb5dc7e6eb64
2015-02-03 17:16:43 -08:00
Miao Wang
b590b354ef [Renderscript] Add check for Allocation.copyTo(Array) and
Fix the input allocation type check for Histogram Intrinsic.

Bug: 19035242
Change-Id: I0ef2672bf816854db90fc92dc9ef51d1d231c246
2015-01-21 21:17:19 +00:00
Tim Murray
b730d866a0 Fix IO_INPUT with 64-bit.
bug 16846318
bug 17006933

Change-Id: Ic13ef26875d8a6fab1ffb542d62038b768a536ff
2014-08-18 18:14:32 -07:00
Tim Murray
cd38b763d5 Allocation.resize() should throw an exception in API 21+.
bug 16846318

Change-Id: I852331ec226e4cad8be79aa27c4b51183e97cc1d
2014-08-14 13:41:02 -07:00
Tim Murray
3de3dc79e5 Update copyFrom(BaseObj[]) for large objects.
Change-Id: I99cadbd1ad925cad0dd357c9abbd1a49c07785c9
2014-07-09 15:30:42 -07:00
Stephen Hines
7f22d01545 am c5b11fcc: am ff83ed2d: am b02dadd4: Merge "Create FieldPacker.getPos() to get the actual amount of data used for FP."
* commit 'c5b11fcc1f4fc4fba988218d0a99a19690398a56':
  Create FieldPacker.getPos() to get the actual amount of data used for FP.
2014-06-19 03:26:15 +00:00
Stephen Hines
fa1275a6e7 Create FieldPacker.getPos() to get the actual amount of data used for FP.
We need larger buffers to handle 64-bit RS object types, but 32-bit code
will never fill all of the getData().length bytes. This allows us to retain
our verification code.

We have to modify an existing use of FieldPacker that was doing partial
updates of the underlying buffer. This was really relying on the old data
to be implicitly selected and written back, but that is not guaranteed by
the original API. This also required a fix to the FieldPacker.reset() API,
which was not allowing the FieldPacker to ever point to the final entry in
its buffer.

Change-Id: Idcd52790ac2b0ab1eff3f043e7eec2832953f04b
2014-06-18 00:24:44 -07:00
Jason Sams
1136bb91b4 Generic object based data copy.
This change consolidates the copy paths to Object based.
The runtime now uses reflection to identify the type of
array present.  This adds support for long/double and reduces
the amount of code present.  We could also support arrays of vectors
or objects in the future with this mechanism.

Change-Id: I2297c1c01fbe6a64c375d6368f25d7db781ea788
2014-02-10 15:18:56 -08:00
Tim Murray
e6eaaf6a8e Fix getBytesSize for YUV allocations.
bug 12134914

Change-Id: I128e75b756a5bd129077177e254f1db6c94182f1
2014-01-31 12:35:17 -08:00
Tim Murray
355707e4f6 Move RenderScript from graphics/ to new fw/base subdirectory rs.
Change-Id: I30b6633578f063840e1bdbcc9ba513b727912a6d
2014-01-31 12:35:17 -08:00
Tim Murray
04f0d6e339 Fix getBytesSize for YUV allocations.
bug 12134914

Change-Id: I128e75b756a5bd129077177e254f1db6c94182f1
2014-01-07 11:14:39 -08:00
Tim Murray
d1576fb039 Move RenderScript from graphics/ to new fw/base subdirectory rs.
Change-Id: I30b6633578f063840e1bdbcc9ba513b727912a6d
2013-12-17 13:28:17 -08:00