1*e1eccf28SAndroid Build Coastguard Worker /*
2*e1eccf28SAndroid Build Coastguard Worker * Copyright (C) 2013 The Android Open Source Project
3*e1eccf28SAndroid Build Coastguard Worker *
4*e1eccf28SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
5*e1eccf28SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
6*e1eccf28SAndroid Build Coastguard Worker * You may obtain a copy of the License at
7*e1eccf28SAndroid Build Coastguard Worker *
8*e1eccf28SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0
9*e1eccf28SAndroid Build Coastguard Worker *
10*e1eccf28SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
11*e1eccf28SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
12*e1eccf28SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*e1eccf28SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
14*e1eccf28SAndroid Build Coastguard Worker * limitations under the License.
15*e1eccf28SAndroid Build Coastguard Worker */
16*e1eccf28SAndroid Build Coastguard Worker
17*e1eccf28SAndroid Build Coastguard Worker #ifndef RENDER_SCRIPT_DEFINES_H
18*e1eccf28SAndroid Build Coastguard Worker #define RENDER_SCRIPT_DEFINES_H
19*e1eccf28SAndroid Build Coastguard Worker
20*e1eccf28SAndroid Build Coastguard Worker #include <stdint.h>
21*e1eccf28SAndroid Build Coastguard Worker #include <sys/types.h>
22*e1eccf28SAndroid Build Coastguard Worker
23*e1eccf28SAndroid Build Coastguard Worker #ifdef __cplusplus
24*e1eccf28SAndroid Build Coastguard Worker extern "C" {
25*e1eccf28SAndroid Build Coastguard Worker #endif
26*e1eccf28SAndroid Build Coastguard Worker
27*e1eccf28SAndroid Build Coastguard Worker //////////////////////////////////////////////////////
28*e1eccf28SAndroid Build Coastguard Worker //
29*e1eccf28SAndroid Build Coastguard Worker
30*e1eccf28SAndroid Build Coastguard Worker typedef void * RsAsyncVoidPtr;
31*e1eccf28SAndroid Build Coastguard Worker
32*e1eccf28SAndroid Build Coastguard Worker typedef void * RsAllocation;
33*e1eccf28SAndroid Build Coastguard Worker typedef void * RsAnimation;
34*e1eccf28SAndroid Build Coastguard Worker typedef void * RsClosure;
35*e1eccf28SAndroid Build Coastguard Worker typedef void * RsContext;
36*e1eccf28SAndroid Build Coastguard Worker typedef void * RsDevice;
37*e1eccf28SAndroid Build Coastguard Worker typedef void * RsElement;
38*e1eccf28SAndroid Build Coastguard Worker typedef void * RsFile;
39*e1eccf28SAndroid Build Coastguard Worker typedef void * RsFont;
40*e1eccf28SAndroid Build Coastguard Worker typedef void * RsSampler;
41*e1eccf28SAndroid Build Coastguard Worker typedef void * RsScript;
42*e1eccf28SAndroid Build Coastguard Worker typedef void * RsScriptKernelID;
43*e1eccf28SAndroid Build Coastguard Worker typedef void * RsScriptInvokeID;
44*e1eccf28SAndroid Build Coastguard Worker typedef void * RsScriptFieldID;
45*e1eccf28SAndroid Build Coastguard Worker typedef void * RsScriptMethodID;
46*e1eccf28SAndroid Build Coastguard Worker typedef void * RsScriptGroup;
47*e1eccf28SAndroid Build Coastguard Worker typedef void * RsScriptGroup2;
48*e1eccf28SAndroid Build Coastguard Worker typedef void * RsMesh;
49*e1eccf28SAndroid Build Coastguard Worker typedef void * RsPath;
50*e1eccf28SAndroid Build Coastguard Worker typedef void * RsType;
51*e1eccf28SAndroid Build Coastguard Worker typedef void * RsObjectBase;
52*e1eccf28SAndroid Build Coastguard Worker
53*e1eccf28SAndroid Build Coastguard Worker typedef void * RsProgram;
54*e1eccf28SAndroid Build Coastguard Worker typedef void * RsProgramVertex;
55*e1eccf28SAndroid Build Coastguard Worker typedef void * RsProgramFragment;
56*e1eccf28SAndroid Build Coastguard Worker typedef void * RsProgramStore;
57*e1eccf28SAndroid Build Coastguard Worker typedef void * RsProgramRaster;
58*e1eccf28SAndroid Build Coastguard Worker
59*e1eccf28SAndroid Build Coastguard Worker typedef void * RsNativeWindow;
60*e1eccf28SAndroid Build Coastguard Worker
61*e1eccf28SAndroid Build Coastguard Worker typedef void (* RsBitmapCallback_t)(void *);
62*e1eccf28SAndroid Build Coastguard Worker
63*e1eccf28SAndroid Build Coastguard Worker typedef struct {
64*e1eccf28SAndroid Build Coastguard Worker float m[16];
65*e1eccf28SAndroid Build Coastguard Worker } rs_matrix4x4;
66*e1eccf28SAndroid Build Coastguard Worker
67*e1eccf28SAndroid Build Coastguard Worker typedef struct {
68*e1eccf28SAndroid Build Coastguard Worker float m[9];
69*e1eccf28SAndroid Build Coastguard Worker } rs_matrix3x3;
70*e1eccf28SAndroid Build Coastguard Worker
71*e1eccf28SAndroid Build Coastguard Worker typedef struct {
72*e1eccf28SAndroid Build Coastguard Worker float m[4];
73*e1eccf28SAndroid Build Coastguard Worker } rs_matrix2x2;
74*e1eccf28SAndroid Build Coastguard Worker
75*e1eccf28SAndroid Build Coastguard Worker enum RsDeviceParam {
76*e1eccf28SAndroid Build Coastguard Worker RS_DEVICE_PARAM_FORCE_SOFTWARE_GL,
77*e1eccf28SAndroid Build Coastguard Worker RS_DEVICE_PARAM_COUNT
78*e1eccf28SAndroid Build Coastguard Worker };
79*e1eccf28SAndroid Build Coastguard Worker
80*e1eccf28SAndroid Build Coastguard Worker enum RsContextType {
81*e1eccf28SAndroid Build Coastguard Worker RS_CONTEXT_TYPE_NORMAL,
82*e1eccf28SAndroid Build Coastguard Worker RS_CONTEXT_TYPE_DEBUG,
83*e1eccf28SAndroid Build Coastguard Worker RS_CONTEXT_TYPE_PROFILE
84*e1eccf28SAndroid Build Coastguard Worker };
85*e1eccf28SAndroid Build Coastguard Worker
86*e1eccf28SAndroid Build Coastguard Worker
87*e1eccf28SAndroid Build Coastguard Worker enum RsAllocationUsageType {
88*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_USAGE_SCRIPT = 0x0001,
89*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE = 0x0002,
90*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_USAGE_GRAPHICS_VERTEX = 0x0004,
91*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_USAGE_GRAPHICS_CONSTANTS = 0x0008,
92*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_USAGE_GRAPHICS_RENDER_TARGET = 0x0010,
93*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_USAGE_IO_INPUT = 0x0020,
94*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_USAGE_IO_OUTPUT = 0x0040,
95*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_USAGE_SHARED = 0x0080,
96*e1eccf28SAndroid Build Coastguard Worker
97*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_USAGE_INCREMENTAL_SUPPORT = 0x1000,
98*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_USAGE_OEM = 0x8000,
99*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_USAGE_ALL = 0x80FF
100*e1eccf28SAndroid Build Coastguard Worker };
101*e1eccf28SAndroid Build Coastguard Worker
102*e1eccf28SAndroid Build Coastguard Worker enum RsAllocationMipmapControl {
103*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_MIPMAP_NONE = 0,
104*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_MIPMAP_FULL = 1,
105*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_MIPMAP_ON_SYNC_TO_TEXTURE = 2
106*e1eccf28SAndroid Build Coastguard Worker };
107*e1eccf28SAndroid Build Coastguard Worker
108*e1eccf28SAndroid Build Coastguard Worker enum RsAllocationCubemapFace {
109*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X = 0,
110*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_X = 1,
111*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_Y = 2,
112*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_Y = 3,
113*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_Z = 4,
114*e1eccf28SAndroid Build Coastguard Worker RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_Z = 5
115*e1eccf28SAndroid Build Coastguard Worker };
116*e1eccf28SAndroid Build Coastguard Worker
117*e1eccf28SAndroid Build Coastguard Worker enum RsDataType {
118*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_NONE = 0,
119*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_FLOAT_16,
120*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_FLOAT_32,
121*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_FLOAT_64,
122*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_SIGNED_8,
123*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_SIGNED_16,
124*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_SIGNED_32,
125*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_SIGNED_64,
126*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_UNSIGNED_8,
127*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_UNSIGNED_16,
128*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_UNSIGNED_32,
129*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_UNSIGNED_64,
130*e1eccf28SAndroid Build Coastguard Worker
131*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_BOOLEAN,
132*e1eccf28SAndroid Build Coastguard Worker
133*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_UNSIGNED_5_6_5,
134*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_UNSIGNED_5_5_5_1,
135*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_UNSIGNED_4_4_4_4,
136*e1eccf28SAndroid Build Coastguard Worker
137*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_MATRIX_4X4,
138*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_MATRIX_3X3,
139*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_MATRIX_2X2,
140*e1eccf28SAndroid Build Coastguard Worker
141*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_ELEMENT = 1000,
142*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_TYPE,
143*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_ALLOCATION,
144*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_SAMPLER,
145*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_SCRIPT,
146*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_MESH,
147*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_PROGRAM_FRAGMENT,
148*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_PROGRAM_VERTEX,
149*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_PROGRAM_RASTER,
150*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_PROGRAM_STORE,
151*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_FONT,
152*e1eccf28SAndroid Build Coastguard Worker
153*e1eccf28SAndroid Build Coastguard Worker RS_TYPE_INVALID = 10000,
154*e1eccf28SAndroid Build Coastguard Worker };
155*e1eccf28SAndroid Build Coastguard Worker
156*e1eccf28SAndroid Build Coastguard Worker enum RsDataKind {
157*e1eccf28SAndroid Build Coastguard Worker RS_KIND_USER,
158*e1eccf28SAndroid Build Coastguard Worker
159*e1eccf28SAndroid Build Coastguard Worker RS_KIND_PIXEL_L = 7,
160*e1eccf28SAndroid Build Coastguard Worker RS_KIND_PIXEL_A,
161*e1eccf28SAndroid Build Coastguard Worker RS_KIND_PIXEL_LA,
162*e1eccf28SAndroid Build Coastguard Worker RS_KIND_PIXEL_RGB,
163*e1eccf28SAndroid Build Coastguard Worker RS_KIND_PIXEL_RGBA,
164*e1eccf28SAndroid Build Coastguard Worker RS_KIND_PIXEL_DEPTH,
165*e1eccf28SAndroid Build Coastguard Worker RS_KIND_PIXEL_YUV,
166*e1eccf28SAndroid Build Coastguard Worker
167*e1eccf28SAndroid Build Coastguard Worker RS_KIND_INVALID = 100,
168*e1eccf28SAndroid Build Coastguard Worker };
169*e1eccf28SAndroid Build Coastguard Worker
170*e1eccf28SAndroid Build Coastguard Worker enum RsYuvFormat {
171*e1eccf28SAndroid Build Coastguard Worker RS_YUV_NONE = 0,
172*e1eccf28SAndroid Build Coastguard Worker RS_YUV_YV12 = 0x32315659, // HAL_PIXEL_FORMAT_YV12 in system/graphics.h
173*e1eccf28SAndroid Build Coastguard Worker RS_YUV_NV21 = 0x11, // HAL_PIXEL_FORMAT_YCrCb_420_SP
174*e1eccf28SAndroid Build Coastguard Worker RS_YUV_420_888 = 0x23, // HAL_PIXEL_FORMAT_YCbCr_420_888
175*e1eccf28SAndroid Build Coastguard Worker };
176*e1eccf28SAndroid Build Coastguard Worker
177*e1eccf28SAndroid Build Coastguard Worker enum RsSamplerParam {
178*e1eccf28SAndroid Build Coastguard Worker RS_SAMPLER_MIN_FILTER,
179*e1eccf28SAndroid Build Coastguard Worker RS_SAMPLER_MAG_FILTER,
180*e1eccf28SAndroid Build Coastguard Worker RS_SAMPLER_WRAP_S,
181*e1eccf28SAndroid Build Coastguard Worker RS_SAMPLER_WRAP_T,
182*e1eccf28SAndroid Build Coastguard Worker RS_SAMPLER_WRAP_R,
183*e1eccf28SAndroid Build Coastguard Worker RS_SAMPLER_ANISO
184*e1eccf28SAndroid Build Coastguard Worker };
185*e1eccf28SAndroid Build Coastguard Worker
186*e1eccf28SAndroid Build Coastguard Worker enum RsSamplerValue {
187*e1eccf28SAndroid Build Coastguard Worker RS_SAMPLER_NEAREST,
188*e1eccf28SAndroid Build Coastguard Worker RS_SAMPLER_LINEAR,
189*e1eccf28SAndroid Build Coastguard Worker RS_SAMPLER_LINEAR_MIP_LINEAR,
190*e1eccf28SAndroid Build Coastguard Worker RS_SAMPLER_WRAP,
191*e1eccf28SAndroid Build Coastguard Worker RS_SAMPLER_CLAMP,
192*e1eccf28SAndroid Build Coastguard Worker RS_SAMPLER_LINEAR_MIP_NEAREST,
193*e1eccf28SAndroid Build Coastguard Worker RS_SAMPLER_MIRRORED_REPEAT,
194*e1eccf28SAndroid Build Coastguard Worker
195*e1eccf28SAndroid Build Coastguard Worker RS_SAMPLER_INVALID = 100,
196*e1eccf28SAndroid Build Coastguard Worker };
197*e1eccf28SAndroid Build Coastguard Worker
198*e1eccf28SAndroid Build Coastguard Worker enum RsDimension {
199*e1eccf28SAndroid Build Coastguard Worker RS_DIMENSION_X,
200*e1eccf28SAndroid Build Coastguard Worker RS_DIMENSION_Y,
201*e1eccf28SAndroid Build Coastguard Worker RS_DIMENSION_Z,
202*e1eccf28SAndroid Build Coastguard Worker RS_DIMENSION_LOD,
203*e1eccf28SAndroid Build Coastguard Worker RS_DIMENSION_FACE,
204*e1eccf28SAndroid Build Coastguard Worker
205*e1eccf28SAndroid Build Coastguard Worker RS_DIMENSION_ARRAY_0 = 100,
206*e1eccf28SAndroid Build Coastguard Worker RS_DIMENSION_ARRAY_1,
207*e1eccf28SAndroid Build Coastguard Worker RS_DIMENSION_ARRAY_2,
208*e1eccf28SAndroid Build Coastguard Worker RS_DIMENSION_ARRAY_3,
209*e1eccf28SAndroid Build Coastguard Worker RS_DIMENSION_MAX = RS_DIMENSION_ARRAY_3
210*e1eccf28SAndroid Build Coastguard Worker };
211*e1eccf28SAndroid Build Coastguard Worker
212*e1eccf28SAndroid Build Coastguard Worker
213*e1eccf28SAndroid Build Coastguard Worker enum RsError {
214*e1eccf28SAndroid Build Coastguard Worker RS_ERROR_NONE = 0,
215*e1eccf28SAndroid Build Coastguard Worker RS_ERROR_BAD_SHADER = 1,
216*e1eccf28SAndroid Build Coastguard Worker RS_ERROR_BAD_SCRIPT = 2,
217*e1eccf28SAndroid Build Coastguard Worker RS_ERROR_BAD_VALUE = 3,
218*e1eccf28SAndroid Build Coastguard Worker RS_ERROR_OUT_OF_MEMORY = 4,
219*e1eccf28SAndroid Build Coastguard Worker RS_ERROR_DRIVER = 5,
220*e1eccf28SAndroid Build Coastguard Worker
221*e1eccf28SAndroid Build Coastguard Worker // Errors that only occur in the debug context.
222*e1eccf28SAndroid Build Coastguard Worker RS_ERROR_FATAL_DEBUG = 0x0800,
223*e1eccf28SAndroid Build Coastguard Worker
224*e1eccf28SAndroid Build Coastguard Worker RS_ERROR_FATAL_UNKNOWN = 0x1000,
225*e1eccf28SAndroid Build Coastguard Worker RS_ERROR_FATAL_DRIVER = 0x1001,
226*e1eccf28SAndroid Build Coastguard Worker RS_ERROR_FATAL_PROGRAM_LINK = 0x1002
227*e1eccf28SAndroid Build Coastguard Worker };
228*e1eccf28SAndroid Build Coastguard Worker
229*e1eccf28SAndroid Build Coastguard Worker enum RsForEachStrategy {
230*e1eccf28SAndroid Build Coastguard Worker RS_FOR_EACH_STRATEGY_SERIAL = 0,
231*e1eccf28SAndroid Build Coastguard Worker RS_FOR_EACH_STRATEGY_DONT_CARE = 1,
232*e1eccf28SAndroid Build Coastguard Worker RS_FOR_EACH_STRATEGY_DST_LINEAR = 2,
233*e1eccf28SAndroid Build Coastguard Worker RS_FOR_EACH_STRATEGY_TILE_SMALL = 3,
234*e1eccf28SAndroid Build Coastguard Worker RS_FOR_EACH_STRATEGY_TILE_MEDIUM = 4,
235*e1eccf28SAndroid Build Coastguard Worker RS_FOR_EACH_STRATEGY_TILE_LARGE = 5
236*e1eccf28SAndroid Build Coastguard Worker };
237*e1eccf28SAndroid Build Coastguard Worker
238*e1eccf28SAndroid Build Coastguard Worker // Script to Script
239*e1eccf28SAndroid Build Coastguard Worker typedef struct {
240*e1eccf28SAndroid Build Coastguard Worker enum RsForEachStrategy strategy;
241*e1eccf28SAndroid Build Coastguard Worker uint32_t xStart;
242*e1eccf28SAndroid Build Coastguard Worker uint32_t xEnd;
243*e1eccf28SAndroid Build Coastguard Worker uint32_t yStart;
244*e1eccf28SAndroid Build Coastguard Worker uint32_t yEnd;
245*e1eccf28SAndroid Build Coastguard Worker uint32_t zStart;
246*e1eccf28SAndroid Build Coastguard Worker uint32_t zEnd;
247*e1eccf28SAndroid Build Coastguard Worker uint32_t arrayStart;
248*e1eccf28SAndroid Build Coastguard Worker uint32_t arrayEnd;
249*e1eccf28SAndroid Build Coastguard Worker uint32_t array2Start;
250*e1eccf28SAndroid Build Coastguard Worker uint32_t array2End;
251*e1eccf28SAndroid Build Coastguard Worker uint32_t array3Start;
252*e1eccf28SAndroid Build Coastguard Worker uint32_t array3End;
253*e1eccf28SAndroid Build Coastguard Worker uint32_t array4Start;
254*e1eccf28SAndroid Build Coastguard Worker uint32_t array4End;
255*e1eccf28SAndroid Build Coastguard Worker
256*e1eccf28SAndroid Build Coastguard Worker } RsScriptCall;
257*e1eccf28SAndroid Build Coastguard Worker
258*e1eccf28SAndroid Build Coastguard Worker enum RsContextFlags {
259*e1eccf28SAndroid Build Coastguard Worker RS_CONTEXT_SYNCHRONOUS = 0x0001,
260*e1eccf28SAndroid Build Coastguard Worker RS_CONTEXT_LOW_LATENCY = 0x0002,
261*e1eccf28SAndroid Build Coastguard Worker RS_CONTEXT_LOW_POWER = 0x0004,
262*e1eccf28SAndroid Build Coastguard Worker RS_CONTEXT_WAIT_FOR_ATTACH = 0x0008
263*e1eccf28SAndroid Build Coastguard Worker };
264*e1eccf28SAndroid Build Coastguard Worker
265*e1eccf28SAndroid Build Coastguard Worker enum RsBlasTranspose {
266*e1eccf28SAndroid Build Coastguard Worker RsBlasNoTrans=111,
267*e1eccf28SAndroid Build Coastguard Worker RsBlasTrans=112,
268*e1eccf28SAndroid Build Coastguard Worker RsBlasConjTrans=113
269*e1eccf28SAndroid Build Coastguard Worker };
270*e1eccf28SAndroid Build Coastguard Worker
271*e1eccf28SAndroid Build Coastguard Worker enum RsBlasUplo {
272*e1eccf28SAndroid Build Coastguard Worker RsBlasUpper=121,
273*e1eccf28SAndroid Build Coastguard Worker RsBlasLower=122
274*e1eccf28SAndroid Build Coastguard Worker };
275*e1eccf28SAndroid Build Coastguard Worker
276*e1eccf28SAndroid Build Coastguard Worker enum RsBlasDiag {
277*e1eccf28SAndroid Build Coastguard Worker RsBlasNonUnit=131,
278*e1eccf28SAndroid Build Coastguard Worker RsBlasUnit=132
279*e1eccf28SAndroid Build Coastguard Worker };
280*e1eccf28SAndroid Build Coastguard Worker
281*e1eccf28SAndroid Build Coastguard Worker enum RsBlasSide {
282*e1eccf28SAndroid Build Coastguard Worker RsBlasLeft=141,
283*e1eccf28SAndroid Build Coastguard Worker RsBlasRight=142
284*e1eccf28SAndroid Build Coastguard Worker };
285*e1eccf28SAndroid Build Coastguard Worker
286*e1eccf28SAndroid Build Coastguard Worker enum RsBlasFunction {
287*e1eccf28SAndroid Build Coastguard Worker RsBlas_nop = 0,
288*e1eccf28SAndroid Build Coastguard Worker RsBlas_sdsdot = 1,
289*e1eccf28SAndroid Build Coastguard Worker RsBlas_dsdot = 2,
290*e1eccf28SAndroid Build Coastguard Worker RsBlas_sdot = 3,
291*e1eccf28SAndroid Build Coastguard Worker RsBlas_ddot = 4,
292*e1eccf28SAndroid Build Coastguard Worker RsBlas_cdotu_sub = 5,
293*e1eccf28SAndroid Build Coastguard Worker RsBlas_cdotc_sub = 6,
294*e1eccf28SAndroid Build Coastguard Worker RsBlas_zdotu_sub = 7,
295*e1eccf28SAndroid Build Coastguard Worker RsBlas_zdotc_sub = 8,
296*e1eccf28SAndroid Build Coastguard Worker RsBlas_snrm2 = 9,
297*e1eccf28SAndroid Build Coastguard Worker RsBlas_sasum = 10,
298*e1eccf28SAndroid Build Coastguard Worker RsBlas_dnrm2 = 11,
299*e1eccf28SAndroid Build Coastguard Worker RsBlas_dasum = 12,
300*e1eccf28SAndroid Build Coastguard Worker RsBlas_scnrm2 = 13,
301*e1eccf28SAndroid Build Coastguard Worker RsBlas_scasum = 14,
302*e1eccf28SAndroid Build Coastguard Worker RsBlas_dznrm2 = 15,
303*e1eccf28SAndroid Build Coastguard Worker RsBlas_dzasum = 16,
304*e1eccf28SAndroid Build Coastguard Worker RsBlas_isamax = 17,
305*e1eccf28SAndroid Build Coastguard Worker RsBlas_idamax = 18,
306*e1eccf28SAndroid Build Coastguard Worker RsBlas_icamax = 19,
307*e1eccf28SAndroid Build Coastguard Worker RsBlas_izamax = 20,
308*e1eccf28SAndroid Build Coastguard Worker RsBlas_sswap = 21,
309*e1eccf28SAndroid Build Coastguard Worker RsBlas_scopy = 22,
310*e1eccf28SAndroid Build Coastguard Worker RsBlas_saxpy = 23,
311*e1eccf28SAndroid Build Coastguard Worker RsBlas_dswap = 24,
312*e1eccf28SAndroid Build Coastguard Worker RsBlas_dcopy = 25,
313*e1eccf28SAndroid Build Coastguard Worker RsBlas_daxpy = 26,
314*e1eccf28SAndroid Build Coastguard Worker RsBlas_cswap = 27,
315*e1eccf28SAndroid Build Coastguard Worker RsBlas_ccopy = 28,
316*e1eccf28SAndroid Build Coastguard Worker RsBlas_caxpy = 29,
317*e1eccf28SAndroid Build Coastguard Worker RsBlas_zswap = 30,
318*e1eccf28SAndroid Build Coastguard Worker RsBlas_zcopy = 31,
319*e1eccf28SAndroid Build Coastguard Worker RsBlas_zaxpy = 32,
320*e1eccf28SAndroid Build Coastguard Worker RsBlas_srotg = 33,
321*e1eccf28SAndroid Build Coastguard Worker RsBlas_srotmg = 34,
322*e1eccf28SAndroid Build Coastguard Worker RsBlas_srot = 35,
323*e1eccf28SAndroid Build Coastguard Worker RsBlas_srotm = 36,
324*e1eccf28SAndroid Build Coastguard Worker RsBlas_drotg = 37,
325*e1eccf28SAndroid Build Coastguard Worker RsBlas_drotmg = 38,
326*e1eccf28SAndroid Build Coastguard Worker RsBlas_drot = 39,
327*e1eccf28SAndroid Build Coastguard Worker RsBlas_drotm = 40,
328*e1eccf28SAndroid Build Coastguard Worker RsBlas_sscal = 41,
329*e1eccf28SAndroid Build Coastguard Worker RsBlas_dscal = 42,
330*e1eccf28SAndroid Build Coastguard Worker RsBlas_cscal = 43,
331*e1eccf28SAndroid Build Coastguard Worker RsBlas_zscal = 44,
332*e1eccf28SAndroid Build Coastguard Worker RsBlas_csscal = 45,
333*e1eccf28SAndroid Build Coastguard Worker RsBlas_zdscal = 46,
334*e1eccf28SAndroid Build Coastguard Worker RsBlas_sgemv = 47,
335*e1eccf28SAndroid Build Coastguard Worker RsBlas_sgbmv = 48,
336*e1eccf28SAndroid Build Coastguard Worker RsBlas_strmv = 49,
337*e1eccf28SAndroid Build Coastguard Worker RsBlas_stbmv = 50,
338*e1eccf28SAndroid Build Coastguard Worker RsBlas_stpmv = 51,
339*e1eccf28SAndroid Build Coastguard Worker RsBlas_strsv = 52,
340*e1eccf28SAndroid Build Coastguard Worker RsBlas_stbsv = 53,
341*e1eccf28SAndroid Build Coastguard Worker RsBlas_stpsv = 54,
342*e1eccf28SAndroid Build Coastguard Worker RsBlas_dgemv = 55,
343*e1eccf28SAndroid Build Coastguard Worker RsBlas_dgbmv = 56,
344*e1eccf28SAndroid Build Coastguard Worker RsBlas_dtrmv = 57,
345*e1eccf28SAndroid Build Coastguard Worker RsBlas_dtbmv = 58,
346*e1eccf28SAndroid Build Coastguard Worker RsBlas_dtpmv = 59,
347*e1eccf28SAndroid Build Coastguard Worker RsBlas_dtrsv = 60,
348*e1eccf28SAndroid Build Coastguard Worker RsBlas_dtbsv = 61,
349*e1eccf28SAndroid Build Coastguard Worker RsBlas_dtpsv = 62,
350*e1eccf28SAndroid Build Coastguard Worker RsBlas_cgemv = 63,
351*e1eccf28SAndroid Build Coastguard Worker RsBlas_cgbmv = 64,
352*e1eccf28SAndroid Build Coastguard Worker RsBlas_ctrmv = 65,
353*e1eccf28SAndroid Build Coastguard Worker RsBlas_ctbmv = 66,
354*e1eccf28SAndroid Build Coastguard Worker RsBlas_ctpmv = 67,
355*e1eccf28SAndroid Build Coastguard Worker RsBlas_ctrsv = 68,
356*e1eccf28SAndroid Build Coastguard Worker RsBlas_ctbsv = 69,
357*e1eccf28SAndroid Build Coastguard Worker RsBlas_ctpsv = 70,
358*e1eccf28SAndroid Build Coastguard Worker RsBlas_zgemv = 71,
359*e1eccf28SAndroid Build Coastguard Worker RsBlas_zgbmv = 72,
360*e1eccf28SAndroid Build Coastguard Worker RsBlas_ztrmv = 73,
361*e1eccf28SAndroid Build Coastguard Worker RsBlas_ztbmv = 74,
362*e1eccf28SAndroid Build Coastguard Worker RsBlas_ztpmv = 75,
363*e1eccf28SAndroid Build Coastguard Worker RsBlas_ztrsv = 76,
364*e1eccf28SAndroid Build Coastguard Worker RsBlas_ztbsv = 77,
365*e1eccf28SAndroid Build Coastguard Worker RsBlas_ztpsv = 78,
366*e1eccf28SAndroid Build Coastguard Worker RsBlas_ssymv = 79,
367*e1eccf28SAndroid Build Coastguard Worker RsBlas_ssbmv = 80,
368*e1eccf28SAndroid Build Coastguard Worker RsBlas_sspmv = 81,
369*e1eccf28SAndroid Build Coastguard Worker RsBlas_sger = 82,
370*e1eccf28SAndroid Build Coastguard Worker RsBlas_ssyr = 83,
371*e1eccf28SAndroid Build Coastguard Worker RsBlas_sspr = 84,
372*e1eccf28SAndroid Build Coastguard Worker RsBlas_ssyr2 = 85,
373*e1eccf28SAndroid Build Coastguard Worker RsBlas_sspr2 = 86,
374*e1eccf28SAndroid Build Coastguard Worker RsBlas_dsymv = 87,
375*e1eccf28SAndroid Build Coastguard Worker RsBlas_dsbmv = 88,
376*e1eccf28SAndroid Build Coastguard Worker RsBlas_dspmv = 89,
377*e1eccf28SAndroid Build Coastguard Worker RsBlas_dger = 90,
378*e1eccf28SAndroid Build Coastguard Worker RsBlas_dsyr = 91,
379*e1eccf28SAndroid Build Coastguard Worker RsBlas_dspr = 92,
380*e1eccf28SAndroid Build Coastguard Worker RsBlas_dsyr2 = 93,
381*e1eccf28SAndroid Build Coastguard Worker RsBlas_dspr2 = 94,
382*e1eccf28SAndroid Build Coastguard Worker RsBlas_chemv = 95,
383*e1eccf28SAndroid Build Coastguard Worker RsBlas_chbmv = 96,
384*e1eccf28SAndroid Build Coastguard Worker RsBlas_chpmv = 97,
385*e1eccf28SAndroid Build Coastguard Worker RsBlas_cgeru = 98,
386*e1eccf28SAndroid Build Coastguard Worker RsBlas_cgerc = 99,
387*e1eccf28SAndroid Build Coastguard Worker RsBlas_cher = 100,
388*e1eccf28SAndroid Build Coastguard Worker RsBlas_chpr = 101,
389*e1eccf28SAndroid Build Coastguard Worker RsBlas_cher2 = 102,
390*e1eccf28SAndroid Build Coastguard Worker RsBlas_chpr2 = 103,
391*e1eccf28SAndroid Build Coastguard Worker RsBlas_zhemv = 104,
392*e1eccf28SAndroid Build Coastguard Worker RsBlas_zhbmv = 105,
393*e1eccf28SAndroid Build Coastguard Worker RsBlas_zhpmv = 106,
394*e1eccf28SAndroid Build Coastguard Worker RsBlas_zgeru = 107,
395*e1eccf28SAndroid Build Coastguard Worker RsBlas_zgerc = 108,
396*e1eccf28SAndroid Build Coastguard Worker RsBlas_zher = 109,
397*e1eccf28SAndroid Build Coastguard Worker RsBlas_zhpr = 110,
398*e1eccf28SAndroid Build Coastguard Worker RsBlas_zher2 = 111,
399*e1eccf28SAndroid Build Coastguard Worker RsBlas_zhpr2 = 112,
400*e1eccf28SAndroid Build Coastguard Worker RsBlas_sgemm = 113,
401*e1eccf28SAndroid Build Coastguard Worker RsBlas_ssymm = 114,
402*e1eccf28SAndroid Build Coastguard Worker RsBlas_ssyrk = 115,
403*e1eccf28SAndroid Build Coastguard Worker RsBlas_ssyr2k = 116,
404*e1eccf28SAndroid Build Coastguard Worker RsBlas_strmm = 117,
405*e1eccf28SAndroid Build Coastguard Worker RsBlas_strsm = 118,
406*e1eccf28SAndroid Build Coastguard Worker RsBlas_dgemm = 119,
407*e1eccf28SAndroid Build Coastguard Worker RsBlas_dsymm = 120,
408*e1eccf28SAndroid Build Coastguard Worker RsBlas_dsyrk = 121,
409*e1eccf28SAndroid Build Coastguard Worker RsBlas_dsyr2k = 122,
410*e1eccf28SAndroid Build Coastguard Worker RsBlas_dtrmm = 123,
411*e1eccf28SAndroid Build Coastguard Worker RsBlas_dtrsm = 124,
412*e1eccf28SAndroid Build Coastguard Worker RsBlas_cgemm = 125,
413*e1eccf28SAndroid Build Coastguard Worker RsBlas_csymm = 126,
414*e1eccf28SAndroid Build Coastguard Worker RsBlas_csyrk = 127,
415*e1eccf28SAndroid Build Coastguard Worker RsBlas_csyr2k = 128,
416*e1eccf28SAndroid Build Coastguard Worker RsBlas_ctrmm = 129,
417*e1eccf28SAndroid Build Coastguard Worker RsBlas_ctrsm = 130,
418*e1eccf28SAndroid Build Coastguard Worker RsBlas_zgemm = 131,
419*e1eccf28SAndroid Build Coastguard Worker RsBlas_zsymm = 132,
420*e1eccf28SAndroid Build Coastguard Worker RsBlas_zsyrk = 133,
421*e1eccf28SAndroid Build Coastguard Worker RsBlas_zsyr2k = 134,
422*e1eccf28SAndroid Build Coastguard Worker RsBlas_ztrmm = 135,
423*e1eccf28SAndroid Build Coastguard Worker RsBlas_ztrsm = 136,
424*e1eccf28SAndroid Build Coastguard Worker RsBlas_chemm = 137,
425*e1eccf28SAndroid Build Coastguard Worker RsBlas_cherk = 138,
426*e1eccf28SAndroid Build Coastguard Worker RsBlas_cher2k = 139,
427*e1eccf28SAndroid Build Coastguard Worker RsBlas_zhemm = 140,
428*e1eccf28SAndroid Build Coastguard Worker RsBlas_zherk = 141,
429*e1eccf28SAndroid Build Coastguard Worker RsBlas_zher2k = 142,
430*e1eccf28SAndroid Build Coastguard Worker
431*e1eccf28SAndroid Build Coastguard Worker // BLAS extensions start here
432*e1eccf28SAndroid Build Coastguard Worker RsBlas_bnnm = 1000,
433*e1eccf28SAndroid Build Coastguard Worker };
434*e1eccf28SAndroid Build Coastguard Worker
435*e1eccf28SAndroid Build Coastguard Worker // custom complex types because of NDK support
436*e1eccf28SAndroid Build Coastguard Worker typedef struct {
437*e1eccf28SAndroid Build Coastguard Worker float r;
438*e1eccf28SAndroid Build Coastguard Worker float i;
439*e1eccf28SAndroid Build Coastguard Worker } RsFloatComplex;
440*e1eccf28SAndroid Build Coastguard Worker
441*e1eccf28SAndroid Build Coastguard Worker typedef struct {
442*e1eccf28SAndroid Build Coastguard Worker double r;
443*e1eccf28SAndroid Build Coastguard Worker double i;
444*e1eccf28SAndroid Build Coastguard Worker } RsDoubleComplex;
445*e1eccf28SAndroid Build Coastguard Worker
446*e1eccf28SAndroid Build Coastguard Worker typedef union {
447*e1eccf28SAndroid Build Coastguard Worker float f;
448*e1eccf28SAndroid Build Coastguard Worker RsFloatComplex c;
449*e1eccf28SAndroid Build Coastguard Worker double d;
450*e1eccf28SAndroid Build Coastguard Worker RsDoubleComplex z;
451*e1eccf28SAndroid Build Coastguard Worker } RsBlasScalar;
452*e1eccf28SAndroid Build Coastguard Worker
453*e1eccf28SAndroid Build Coastguard Worker typedef struct {
454*e1eccf28SAndroid Build Coastguard Worker RsBlasFunction func;
455*e1eccf28SAndroid Build Coastguard Worker RsBlasTranspose transA;
456*e1eccf28SAndroid Build Coastguard Worker RsBlasTranspose transB;
457*e1eccf28SAndroid Build Coastguard Worker RsBlasUplo uplo;
458*e1eccf28SAndroid Build Coastguard Worker RsBlasDiag diag;
459*e1eccf28SAndroid Build Coastguard Worker RsBlasSide side;
460*e1eccf28SAndroid Build Coastguard Worker int M;
461*e1eccf28SAndroid Build Coastguard Worker int N;
462*e1eccf28SAndroid Build Coastguard Worker int K;
463*e1eccf28SAndroid Build Coastguard Worker RsBlasScalar alpha;
464*e1eccf28SAndroid Build Coastguard Worker RsBlasScalar beta;
465*e1eccf28SAndroid Build Coastguard Worker int incX;
466*e1eccf28SAndroid Build Coastguard Worker int incY;
467*e1eccf28SAndroid Build Coastguard Worker int KL;
468*e1eccf28SAndroid Build Coastguard Worker int KU;
469*e1eccf28SAndroid Build Coastguard Worker uint8_t a_offset;
470*e1eccf28SAndroid Build Coastguard Worker uint8_t b_offset;
471*e1eccf28SAndroid Build Coastguard Worker int32_t c_offset;
472*e1eccf28SAndroid Build Coastguard Worker int32_t c_mult_int;
473*e1eccf28SAndroid Build Coastguard Worker } RsBlasCall;
474*e1eccf28SAndroid Build Coastguard Worker
475*e1eccf28SAndroid Build Coastguard Worker enum RsGlobalProperty {
476*e1eccf28SAndroid Build Coastguard Worker RS_GLOBAL_TYPE = 0x0000FFFF,
477*e1eccf28SAndroid Build Coastguard Worker RS_GLOBAL_CONSTANT = 0x00010000,
478*e1eccf28SAndroid Build Coastguard Worker RS_GLOBAL_STATIC = 0x00020000,
479*e1eccf28SAndroid Build Coastguard Worker RS_GLOBAL_POINTER = 0x00040000
480*e1eccf28SAndroid Build Coastguard Worker };
481*e1eccf28SAndroid Build Coastguard Worker
482*e1eccf28SAndroid Build Coastguard Worker // Special symbols embedded into a shared object compiled by bcc.
483*e1eccf28SAndroid Build Coastguard Worker static const char kRoot[] = "root";
484*e1eccf28SAndroid Build Coastguard Worker static const char kInit[] = "init";
485*e1eccf28SAndroid Build Coastguard Worker static const char kRsDtor[] = ".rs.dtor";
486*e1eccf28SAndroid Build Coastguard Worker static const char kRsInfo[] = ".rs.info";
487*e1eccf28SAndroid Build Coastguard Worker static const char kRsGlobalEntries[] = ".rs.global_entries";
488*e1eccf28SAndroid Build Coastguard Worker static const char kRsGlobalNames[] = ".rs.global_names";
489*e1eccf28SAndroid Build Coastguard Worker static const char kRsGlobalAddresses[] = ".rs.global_addresses";
490*e1eccf28SAndroid Build Coastguard Worker static const char kRsGlobalSizes[] = ".rs.global_sizes";
491*e1eccf28SAndroid Build Coastguard Worker static const char kRsGlobalProperties[] = ".rs.global_properties";
492*e1eccf28SAndroid Build Coastguard Worker
getGlobalRsType(uint32_t properties)493*e1eccf28SAndroid Build Coastguard Worker static inline uint32_t getGlobalRsType(uint32_t properties) {
494*e1eccf28SAndroid Build Coastguard Worker return properties & RS_GLOBAL_TYPE;
495*e1eccf28SAndroid Build Coastguard Worker }
isGlobalConstant(uint32_t properties)496*e1eccf28SAndroid Build Coastguard Worker static inline bool isGlobalConstant(uint32_t properties) {
497*e1eccf28SAndroid Build Coastguard Worker return properties & RS_GLOBAL_CONSTANT;
498*e1eccf28SAndroid Build Coastguard Worker }
isGlobalStatic(uint32_t properties)499*e1eccf28SAndroid Build Coastguard Worker static inline bool isGlobalStatic(uint32_t properties) {
500*e1eccf28SAndroid Build Coastguard Worker return properties & RS_GLOBAL_STATIC;
501*e1eccf28SAndroid Build Coastguard Worker }
isGlobalPointer(uint32_t properties)502*e1eccf28SAndroid Build Coastguard Worker static inline bool isGlobalPointer(uint32_t properties) {
503*e1eccf28SAndroid Build Coastguard Worker return properties & RS_GLOBAL_POINTER;
504*e1eccf28SAndroid Build Coastguard Worker }
505*e1eccf28SAndroid Build Coastguard Worker
506*e1eccf28SAndroid Build Coastguard Worker #ifdef __cplusplus
507*e1eccf28SAndroid Build Coastguard Worker };
508*e1eccf28SAndroid Build Coastguard Worker #endif
509*e1eccf28SAndroid Build Coastguard Worker
510*e1eccf28SAndroid Build Coastguard Worker #endif // RENDER_SCRIPT_DEFINES_H
511