RenderScript is a
deprecated
Deprecation is the discouragement of use of something human-made, such as a term, feature, design, or practice. Typically something is deprecated because it is claimed to be inferior compared to other options available.
Something may be deprec ...
component of the
Android operating system
Android is an operating system based on a modified version of the Linux kernel and other open-source software, designed primarily for touchscreen-based mobile devices such as smartphones and tablets. Android has historically been developed by ...
for mobile devices that offers an
API
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
for acceleration that takes advantage of
heterogeneous
Homogeneity and heterogeneity are concepts relating to the uniformity of a substance, process or image. A homogeneous feature is uniform in composition or character (i.e., color, shape, size, weight, height, distribution, texture, language, i ...
hardware. It allows developers to increase the performance of their applications at the cost of writing more complex (lower-level) code.
It provides the developer three primary tools: A simple 3D rendering API, a compute API similar to
CUDA
In computing, CUDA (Compute Unified Device Architecture) is a proprietary parallel computing platform and application programming interface (API) that allows software to use certain types of graphics processing units (GPUs) for accelerated gene ...
, and a
C99
C99 (previously C9X, formally ISO/IEC 9899:1999) is a past version of the C programming language open standard. It extends the previous version ( C90) with new features for the language and the standard library, and helps implementations mak ...
-derived language.
History
RenderScript was added in
Android 3.0 Honeycomb.
As of Android 4.1, RenderScript's experimental
3D rendering API has been deprecated, and now exists solely as a compute API.
Android 4.2 added new capabilities to script intrinsics, such as ''Blend'' and ''Blur''; as well as ''ScriptGroups'' which allows related RenderScript scripts to be grouped and executed with one call.
It also added ''FilterScript,'' which is a subset of RenderScript that allows developers to write their image processing operations in FilterScript using the standard RenderScript runtime API, but within stricter constraints that ensure wider compatibility and improved optimization across
multi-core
A multi-core processor (MCP) is a microprocessor on a single integrated circuit (IC) with two or more separate central processing units (CPUs), called ''cores'' to emphasize their multiplicity (for example, ''dual-core'' or ''quad-core''). Ea ...
CPUs
A central processing unit (CPU), also called a central processor, main processor, or just processor, is the primary Processor (computing), processor in a given computer. Its electronic circuitry executes Instruction (computing), instructions ...
,
GPUs
A graphics processing unit (GPU) is a specialized electronic circuit designed for digital image processing and to accelerate computer graphics, being present either as a discrete video card or embedded on motherboards, mobile phones, personal ...
, and
DSPs. FilterScript is less precise in
floating point precision, and more cross device compatible subset of RenderScript – and should not be mistaken for a RenderScript replacement technology.
On April 19, 2021, Google announced that RenderScript will be
deprecated
Deprecation is the discouragement of use of something human-made, such as a term, feature, design, or practice. Typically something is deprecated because it is claimed to be inferior compared to other options available.
Something may be deprec ...
in
Android 12
Android 12 is the Android version history, twelfth major release and 19th version of Android (operating system), Android, the mobile operating system developed by the Open Handset Alliance led by Google. The first beta was released on May 18, ...
, and recommended porting existing code to
Vulkan
Vulkan is a cross-platform API and open standard for 3D graphics and computing. It was intended to address the shortcomings of OpenGL, and allow developers more control over the GPU. It is designed to support a wide variety of GPUs, CPUs and o ...
.
Features
Portability
RenderScript is designed to always run on the various Android platforms regardless of hardware type. Performance tuning is done at runtime.
RenderScript portability depends upon device-specific drivers:
a basic CPU-only driver is provided for every device, while there exist some specific chipset-provided RenderScript drivers that enable GPU usage (e.g. Qualcomm specific drivers, which are provided in the
libRSDriver_adreno.so
Android library).
Performance
RenderScript is designed to tune tasks at runtime that can be efficiently split and run concurrently on the underlying hardware.
As of Android 4.2, RenderScript has been expanded to run on the GPU in addition to the CPU on supported systems.
Limitations
* RenderScript cannot yet express on-chip inter-thread communication (known as local memory in
OpenCL
OpenCL (Open Computing Language) is a software framework, framework for writing programs that execute across heterogeneous computing, heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), di ...
, and shared memory in CUDA).
* RenderScript cannot yet express hardware-implemented 2D and 3D lookups with bilinear interpolation (known as texture in CUDA, and image read in OpenCL).
References
External links
Google Developer pageGoogle details low-level Renderscript API for Honeycomb
*
ttp://www.independent-software.com/setting-up-android-renderscript-in-android-studio-1-3/ Guide to setting up Renderscript in Android Studio
{{Android
Android (operating system)
GPGPU libraries