1bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams/*
2bc0ca6ba4e31239bf77060578d0bdf1a10e04168Jason Sams * Copyright (C) 2013 The Android Open Source Project
3bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams *
4bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * Licensed under the Apache License, Version 2.0 (the "License");
5bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * you may not use this file except in compliance with the License.
6bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * You may obtain a copy of the License at
7bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams *
8bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams *      http://www.apache.org/licenses/LICENSE-2.0
9bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams *
10bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * Unless required by applicable law or agreed to in writing, software
11bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * distributed under the License is distributed on an "AS IS" BASIS,
12bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * See the License for the specific language governing permissions and
14bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * limitations under the License.
15bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams */
16bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
17bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#ifndef RENDER_SCRIPT_DEFINES_H
18bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#define RENDER_SCRIPT_DEFINES_H
19bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
20bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#include <stdint.h>
21bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#include <sys/types.h>
22bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
23bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#ifdef __cplusplus
24bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsextern "C" {
25bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#endif
26bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
27bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams//////////////////////////////////////////////////////
28bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams//
29bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
30bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsAsyncVoidPtr;
31bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
32bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsAllocation;
33bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsAnimation;
341ffd86b448d78366190c540f98f8b6d641cdb6cfYang Nitypedef void * RsClosure;
35bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsContext;
36bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsDevice;
37bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsElement;
38bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsFile;
39bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsFont;
40bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsSampler;
41bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsScript;
42dbe66d6783c1e53cd1572de0ef6ef6fdf6f76f48Jason Samstypedef void * RsScriptKernelID;
43eb9aa675754c49f613c6ad71d41472b30f38b007Yang Nitypedef void * RsScriptInvokeID;
44dbe66d6783c1e53cd1572de0ef6ef6fdf6f76f48Jason Samstypedef void * RsScriptFieldID;
45dbe66d6783c1e53cd1572de0ef6ef6fdf6f76f48Jason Samstypedef void * RsScriptMethodID;
46dbe66d6783c1e53cd1572de0ef6ef6fdf6f76f48Jason Samstypedef void * RsScriptGroup;
471ffd86b448d78366190c540f98f8b6d641cdb6cfYang Nitypedef void * RsScriptGroup2;
48bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsMesh;
499e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Samstypedef void * RsPath;
50bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsType;
51bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsObjectBase;
52bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
53bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsProgram;
54bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsProgramVertex;
55bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsProgramFragment;
56bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsProgramStore;
57bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsProgramRaster;
58bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
597257c7ee4b66f00c43d9235f3ac600061ae79968Alex Sakhartchouktypedef void * RsNativeWindow;
607257c7ee4b66f00c43d9235f3ac600061ae79968Alex Sakhartchouk
61bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void (* RsBitmapCallback_t)(void *);
62bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
6387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samstypedef struct {
6487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams    float m[16];
6587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} rs_matrix4x4;
6687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams
6787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samstypedef struct {
6887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams    float m[9];
6987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} rs_matrix3x3;
7087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams
7187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samstypedef struct {
7287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams    float m[4];
7387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} rs_matrix2x2;
7487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams
75bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsDeviceParam {
76bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DEVICE_PARAM_FORCE_SOFTWARE_GL,
77bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DEVICE_PARAM_COUNT
78bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
79bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
8014982c8eb9a17a95a817c1fd2571829be5b7017eJason Samsenum RsContextType {
8114982c8eb9a17a95a817c1fd2571829be5b7017eJason Sams    RS_CONTEXT_TYPE_NORMAL,
8214982c8eb9a17a95a817c1fd2571829be5b7017eJason Sams    RS_CONTEXT_TYPE_DEBUG,
8314982c8eb9a17a95a817c1fd2571829be5b7017eJason Sams    RS_CONTEXT_TYPE_PROFILE
8414982c8eb9a17a95a817c1fd2571829be5b7017eJason Sams};
8514982c8eb9a17a95a817c1fd2571829be5b7017eJason Sams
86bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
87bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsAllocationUsageType {
88bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ALLOCATION_USAGE_SCRIPT = 0x0001,
89bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE = 0x0002,
90bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ALLOCATION_USAGE_GRAPHICS_VERTEX = 0x0004,
91bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ALLOCATION_USAGE_GRAPHICS_CONSTANTS = 0x0008,
927d9c5ffccb7a5e682860f752403e5a03aed587beAlex Sakhartchouk    RS_ALLOCATION_USAGE_GRAPHICS_RENDER_TARGET = 0x0010,
933522f40418fdf877f5a136475dbf75e57a3b7c77Jason Sams    RS_ALLOCATION_USAGE_IO_INPUT = 0x0020,
943522f40418fdf877f5a136475dbf75e57a3b7c77Jason Sams    RS_ALLOCATION_USAGE_IO_OUTPUT = 0x0040,
959e2bda58db9e6427a1640ea302d4df079ffa0252Tim Murray    RS_ALLOCATION_USAGE_SHARED = 0x0080,
96bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
9747a5881b8f85d65c74f2471fe6261d4cdb3dce5eMiao Wang    RS_ALLOCATION_USAGE_INCREMENTAL_SUPPORT = 0x1000,
98f82b626e0479ce4a23ebff1fc088e073dcabaa30Jason Sams    RS_ALLOCATION_USAGE_OEM = 0x8000,
99f82b626e0479ce4a23ebff1fc088e073dcabaa30Jason Sams    RS_ALLOCATION_USAGE_ALL = 0x80FF
100bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
101bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
102bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsAllocationMipmapControl {
103bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ALLOCATION_MIPMAP_NONE = 0,
104bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ALLOCATION_MIPMAP_FULL = 1,
105bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ALLOCATION_MIPMAP_ON_SYNC_TO_TEXTURE = 2
106bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
107bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
108bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsAllocationCubemapFace {
10974a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk    RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X = 0,
11074a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk    RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_X = 1,
11174a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk    RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_Y = 2,
11274a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk    RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_Y = 3,
11374a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk    RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_Z = 4,
11474a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk    RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_Z = 5
115bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
116bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
117bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsDataType {
1185aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hines    RS_TYPE_NONE = 0,
119bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_FLOAT_16,
120bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_FLOAT_32,
121bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_FLOAT_64,
122bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_SIGNED_8,
123bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_SIGNED_16,
124bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_SIGNED_32,
125bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_SIGNED_64,
126bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_UNSIGNED_8,
127bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_UNSIGNED_16,
128bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_UNSIGNED_32,
129bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_UNSIGNED_64,
130bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
131bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_BOOLEAN,
132bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
133bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_UNSIGNED_5_6_5,
134bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_UNSIGNED_5_5_5_1,
135bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_UNSIGNED_4_4_4_4,
136bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
137bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_MATRIX_4X4,
138bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_MATRIX_3X3,
139bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_MATRIX_2X2,
140bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
141bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_ELEMENT = 1000,
142bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_TYPE,
143bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_ALLOCATION,
144bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_SAMPLER,
145bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_SCRIPT,
146bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_MESH,
147bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_PROGRAM_FRAGMENT,
148bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_PROGRAM_VERTEX,
149bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_PROGRAM_RASTER,
150bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_PROGRAM_STORE,
151ae8b795a673b75bf0aec72620f4530db1415f907Stephen Hines    RS_TYPE_FONT,
15225a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk
15325a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk    RS_TYPE_INVALID = 10000,
154bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
155bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
156bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsDataKind {
157bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_KIND_USER,
158bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
159bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_KIND_PIXEL_L = 7,
160bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_KIND_PIXEL_A,
161bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_KIND_PIXEL_LA,
162bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_KIND_PIXEL_RGB,
163bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_KIND_PIXEL_RGBA,
1647d9c5ffccb7a5e682860f752403e5a03aed587beAlex Sakhartchouk    RS_KIND_PIXEL_DEPTH,
165bc0ca6ba4e31239bf77060578d0bdf1a10e04168Jason Sams    RS_KIND_PIXEL_YUV,
16625a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk
16725a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk    RS_KIND_INVALID = 100,
168bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
169bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
1706b387c1e466b507007f0b388da8b037362154e9aPirama Arumuga Nainarenum RsYuvFormat {
1716b387c1e466b507007f0b388da8b037362154e9aPirama Arumuga Nainar    RS_YUV_NONE    = 0,
1726b387c1e466b507007f0b388da8b037362154e9aPirama Arumuga Nainar    RS_YUV_YV12    = 0x32315659, // HAL_PIXEL_FORMAT_YV12 in system/graphics.h
1736b387c1e466b507007f0b388da8b037362154e9aPirama Arumuga Nainar    RS_YUV_NV21    = 0x11,       // HAL_PIXEL_FORMAT_YCrCb_420_SP
1746b387c1e466b507007f0b388da8b037362154e9aPirama Arumuga Nainar    RS_YUV_420_888 = 0x23,       // HAL_PIXEL_FORMAT_YCbCr_420_888
1756b387c1e466b507007f0b388da8b037362154e9aPirama Arumuga Nainar};
1766b387c1e466b507007f0b388da8b037362154e9aPirama Arumuga Nainar
177bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsSamplerParam {
178bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_MIN_FILTER,
179bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_MAG_FILTER,
180bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_WRAP_S,
181bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_WRAP_T,
182bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_WRAP_R,
183bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_ANISO
184bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
185bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
186bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsSamplerValue {
187bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_NEAREST,
188bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_LINEAR,
189bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_LINEAR_MIP_LINEAR,
190bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_WRAP,
191bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_CLAMP,
192bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_LINEAR_MIP_NEAREST,
1939e913f4a5ab519af6c0c04f9b992d85f1c447d2dTim Murray    RS_SAMPLER_MIRRORED_REPEAT,
19425a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk
19525a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk    RS_SAMPLER_INVALID = 100,
196bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
197bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
198bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsDimension {
199bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_X,
200bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_Y,
201bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_Z,
202bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_LOD,
203bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_FACE,
204bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
205bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_ARRAY_0 = 100,
206bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_ARRAY_1,
207bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_ARRAY_2,
208bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_ARRAY_3,
209bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_MAX = RS_DIMENSION_ARRAY_3
210bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
211bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
2129e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
213bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsError {
214bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ERROR_NONE = 0,
215bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ERROR_BAD_SHADER = 1,
216bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ERROR_BAD_SCRIPT = 2,
217bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ERROR_BAD_VALUE = 3,
218bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ERROR_OUT_OF_MEMORY = 4,
219bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ERROR_DRIVER = 5,
220bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
221cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines    // Errors that only occur in the debug context.
222cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines    RS_ERROR_FATAL_DEBUG = 0x0800,
223cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines
224bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ERROR_FATAL_UNKNOWN = 0x1000,
225bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ERROR_FATAL_DRIVER = 0x1001,
226bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ERROR_FATAL_PROGRAM_LINK = 0x1002
227bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
228bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
229f598811a60088236222bb1879503842094ca378bStephen Hinesenum RsForEachStrategy {
230f598811a60088236222bb1879503842094ca378bStephen Hines    RS_FOR_EACH_STRATEGY_SERIAL = 0,
231f598811a60088236222bb1879503842094ca378bStephen Hines    RS_FOR_EACH_STRATEGY_DONT_CARE = 1,
232f598811a60088236222bb1879503842094ca378bStephen Hines    RS_FOR_EACH_STRATEGY_DST_LINEAR = 2,
233f598811a60088236222bb1879503842094ca378bStephen Hines    RS_FOR_EACH_STRATEGY_TILE_SMALL = 3,
234f598811a60088236222bb1879503842094ca378bStephen Hines    RS_FOR_EACH_STRATEGY_TILE_MEDIUM = 4,
235f598811a60088236222bb1879503842094ca378bStephen Hines    RS_FOR_EACH_STRATEGY_TILE_LARGE = 5
236f598811a60088236222bb1879503842094ca378bStephen Hines};
237f598811a60088236222bb1879503842094ca378bStephen Hines
238bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams// Script to Script
239bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef struct {
240f598811a60088236222bb1879503842094ca378bStephen Hines    enum RsForEachStrategy strategy;
241bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t xStart;
242bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t xEnd;
243bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t yStart;
244bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t yEnd;
245bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t zStart;
246bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t zEnd;
247bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t arrayStart;
248bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t arrayEnd;
249bf2111d3b3de310932099514f06924e48fa1d7b2Jason Sams    uint32_t array2Start;
250bf2111d3b3de310932099514f06924e48fa1d7b2Jason Sams    uint32_t array2End;
251bf2111d3b3de310932099514f06924e48fa1d7b2Jason Sams    uint32_t array3Start;
252bf2111d3b3de310932099514f06924e48fa1d7b2Jason Sams    uint32_t array3End;
253bf2111d3b3de310932099514f06924e48fa1d7b2Jason Sams    uint32_t array4Start;
254bf2111d3b3de310932099514f06924e48fa1d7b2Jason Sams    uint32_t array4End;
255bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
256bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams} RsScriptCall;
257bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
25884e3dea053bea25c1cec44ffb298f8b5b9b9141aTim Murrayenum RsContextFlags {
259bfa5a8e76fd9469cdecb3115685ded677d2d210aJason Sams    RS_CONTEXT_SYNCHRONOUS      = 0x0001,
260bfa5a8e76fd9469cdecb3115685ded677d2d210aJason Sams    RS_CONTEXT_LOW_LATENCY      = 0x0002,
261d5164d537c84867880694327727b5f22b0a3ccbdStephen McGroarty    RS_CONTEXT_LOW_POWER        = 0x0004,
26215c1d06c654c246b8e8047f64f781add32483576Stephen McGroarty    RS_CONTEXT_WAIT_FOR_ATTACH  = 0x0008
26384e3dea053bea25c1cec44ffb298f8b5b9b9141aTim Murray};
26484e3dea053bea25c1cec44ffb298f8b5b9b9141aTim Murray
26564c682b65cd04ac83b51251b40dca14423df351aTim Murrayenum RsBlasTranspose {
26664c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsBlasNoTrans=111,
26764c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsBlasTrans=112,
26864c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsBlasConjTrans=113
26964c682b65cd04ac83b51251b40dca14423df351aTim Murray};
27064c682b65cd04ac83b51251b40dca14423df351aTim Murray
27164c682b65cd04ac83b51251b40dca14423df351aTim Murrayenum RsBlasUplo {
27264c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsBlasUpper=121,
27364c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsBlasLower=122
27464c682b65cd04ac83b51251b40dca14423df351aTim Murray};
27564c682b65cd04ac83b51251b40dca14423df351aTim Murray
27664c682b65cd04ac83b51251b40dca14423df351aTim Murrayenum RsBlasDiag {
27764c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsBlasNonUnit=131,
27864c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsBlasUnit=132
27964c682b65cd04ac83b51251b40dca14423df351aTim Murray};
28064c682b65cd04ac83b51251b40dca14423df351aTim Murray
28164c682b65cd04ac83b51251b40dca14423df351aTim Murrayenum RsBlasSide {
28264c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsBlasLeft=141,
28364c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsBlasRight=142
28464c682b65cd04ac83b51251b40dca14423df351aTim Murray};
28584e3dea053bea25c1cec44ffb298f8b5b9b9141aTim Murray
28664c682b65cd04ac83b51251b40dca14423df351aTim Murrayenum RsBlasFunction {
28764c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsBlas_nop = 0,
288aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_sdsdot = 1,
289aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dsdot = 2,
290aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_sdot = 3,
291aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ddot = 4,
292aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_cdotu_sub = 5,
293aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_cdotc_sub = 6,
294aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zdotu_sub = 7,
295aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zdotc_sub = 8,
296aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_snrm2 = 9,
297aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_sasum = 10,
298aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dnrm2 = 11,
299aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dasum = 12,
300aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_scnrm2 = 13,
301aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_scasum = 14,
302aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dznrm2 = 15,
303aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dzasum = 16,
304aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_isamax = 17,
305aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_idamax = 18,
306aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_icamax = 19,
307aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_izamax = 20,
308aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_sswap = 21,
309aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_scopy = 22,
310aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_saxpy = 23,
311aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dswap = 24,
312aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dcopy = 25,
313aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_daxpy = 26,
314aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_cswap = 27,
315aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ccopy = 28,
316aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_caxpy = 29,
317aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zswap = 30,
318aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zcopy = 31,
319aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zaxpy = 32,
320aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_srotg = 33,
321aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_srotmg = 34,
322aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_srot = 35,
323aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_srotm = 36,
324aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_drotg = 37,
325aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_drotmg = 38,
326aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_drot = 39,
327aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_drotm = 40,
328aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_sscal = 41,
329aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dscal = 42,
330aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_cscal = 43,
331aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zscal = 44,
332aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_csscal = 45,
333aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zdscal = 46,
334aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_sgemv = 47,
335aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_sgbmv = 48,
336aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_strmv = 49,
337aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_stbmv = 50,
338aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_stpmv = 51,
339aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_strsv = 52,
340aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_stbsv = 53,
341aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_stpsv = 54,
342aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dgemv = 55,
343aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dgbmv = 56,
344aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dtrmv = 57,
345aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dtbmv = 58,
346aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dtpmv = 59,
347aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dtrsv = 60,
348aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dtbsv = 61,
349aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dtpsv = 62,
350aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_cgemv = 63,
351aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_cgbmv = 64,
352aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ctrmv = 65,
353aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ctbmv = 66,
354aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ctpmv = 67,
355aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ctrsv = 68,
356aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ctbsv = 69,
357aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ctpsv = 70,
358aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zgemv = 71,
359aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zgbmv = 72,
360aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ztrmv = 73,
361aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ztbmv = 74,
362aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ztpmv = 75,
363aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ztrsv = 76,
364aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ztbsv = 77,
365aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ztpsv = 78,
366aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ssymv = 79,
367aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ssbmv = 80,
368aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_sspmv = 81,
369aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_sger = 82,
370aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ssyr = 83,
371aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_sspr = 84,
372aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ssyr2 = 85,
373aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_sspr2 = 86,
374aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dsymv = 87,
375aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dsbmv = 88,
376aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dspmv = 89,
377aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dger = 90,
378aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dsyr = 91,
379aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dspr = 92,
380aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dsyr2 = 93,
381aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dspr2 = 94,
382aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_chemv = 95,
383aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_chbmv = 96,
384aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_chpmv = 97,
385aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_cgeru = 98,
386aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_cgerc = 99,
387aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_cher = 100,
388aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_chpr = 101,
389aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_cher2 = 102,
390aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_chpr2 = 103,
391aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zhemv = 104,
392aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zhbmv = 105,
393aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zhpmv = 106,
394aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zgeru = 107,
395aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zgerc = 108,
396aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zher = 109,
397aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zhpr = 110,
398aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zher2 = 111,
399aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zhpr2 = 112,
400aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_sgemm = 113,
401aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ssymm = 114,
402aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ssyrk = 115,
403aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ssyr2k = 116,
404aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_strmm = 117,
405aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_strsm = 118,
406aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dgemm = 119,
407aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dsymm = 120,
408aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dsyrk = 121,
409aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dsyr2k = 122,
410aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dtrmm = 123,
411aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_dtrsm = 124,
412aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_cgemm = 125,
413aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_csymm = 126,
414aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_csyrk = 127,
415aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_csyr2k = 128,
416aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ctrmm = 129,
417aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ctrsm = 130,
418aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zgemm = 131,
419aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zsymm = 132,
420aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zsyrk = 133,
421aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zsyr2k = 134,
422aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ztrmm = 135,
423aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_ztrsm = 136,
424aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_chemm = 137,
425aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_cherk = 138,
426aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_cher2k = 139,
427aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zhemm = 140,
428aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zherk = 141,
429aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    RsBlas_zher2k = 142,
430aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray
431aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray    // BLAS extensions start here
4322b999883f2f390ee43ed18317d77c810a0c6657bTim Murray    RsBlas_bnnm = 1000,
43364c682b65cd04ac83b51251b40dca14423df351aTim Murray};
43464c682b65cd04ac83b51251b40dca14423df351aTim Murray
43564c682b65cd04ac83b51251b40dca14423df351aTim Murray// custom complex types because of NDK support
43664c682b65cd04ac83b51251b40dca14423df351aTim Murraytypedef struct {
43764c682b65cd04ac83b51251b40dca14423df351aTim Murray    float r;
43864c682b65cd04ac83b51251b40dca14423df351aTim Murray    float i;
43964c682b65cd04ac83b51251b40dca14423df351aTim Murray} RsFloatComplex;
44064c682b65cd04ac83b51251b40dca14423df351aTim Murray
44164c682b65cd04ac83b51251b40dca14423df351aTim Murraytypedef struct {
44264c682b65cd04ac83b51251b40dca14423df351aTim Murray    double r;
44364c682b65cd04ac83b51251b40dca14423df351aTim Murray    double i;
44464c682b65cd04ac83b51251b40dca14423df351aTim Murray} RsDoubleComplex;
44564c682b65cd04ac83b51251b40dca14423df351aTim Murray
446aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murraytypedef union {
44764c682b65cd04ac83b51251b40dca14423df351aTim Murray    float f;
44864c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsFloatComplex c;
44964c682b65cd04ac83b51251b40dca14423df351aTim Murray    double d;
45064c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsDoubleComplex z;
45164c682b65cd04ac83b51251b40dca14423df351aTim Murray} RsBlasScalar;
45264c682b65cd04ac83b51251b40dca14423df351aTim Murray
45364c682b65cd04ac83b51251b40dca14423df351aTim Murraytypedef struct {
45464c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsBlasFunction func;
45564c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsBlasTranspose transA;
45664c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsBlasTranspose transB;
45764c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsBlasUplo uplo;
45864c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsBlasDiag diag;
45964c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsBlasSide side;
46064c682b65cd04ac83b51251b40dca14423df351aTim Murray    int M;
46164c682b65cd04ac83b51251b40dca14423df351aTim Murray    int N;
46264c682b65cd04ac83b51251b40dca14423df351aTim Murray    int K;
46364c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsBlasScalar alpha;
46464c682b65cd04ac83b51251b40dca14423df351aTim Murray    RsBlasScalar beta;
46564c682b65cd04ac83b51251b40dca14423df351aTim Murray    int incX;
46664c682b65cd04ac83b51251b40dca14423df351aTim Murray    int incY;
46764c682b65cd04ac83b51251b40dca14423df351aTim Murray    int KL;
46864c682b65cd04ac83b51251b40dca14423df351aTim Murray    int KU;
46906deda3751a4a7358a7c7e03fbf1e4325fafb807Miao Wang    uint8_t a_offset;
47006deda3751a4a7358a7c7e03fbf1e4325fafb807Miao Wang    uint8_t b_offset;
47106deda3751a4a7358a7c7e03fbf1e4325fafb807Miao Wang    int32_t c_offset;
47206deda3751a4a7358a7c7e03fbf1e4325fafb807Miao Wang    int32_t c_mult_int;
47364c682b65cd04ac83b51251b40dca14423df351aTim Murray} RsBlasCall;
474aff744561bea3c8a7a7d59c0cb8cd9438f6dcd1cTim Murray
4755aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hinesenum RsGlobalProperty {
4765aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hines    RS_GLOBAL_TYPE     = 0x0000FFFF,
4775aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hines    RS_GLOBAL_CONSTANT = 0x00010000,
4785aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hines    RS_GLOBAL_STATIC   = 0x00020000,
4795aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hines    RS_GLOBAL_POINTER  = 0x00040000
4805aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hines};
4815aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hines
4825aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hines// Special symbols embedded into a shared object compiled by bcc.
4835aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hinesstatic const char kRoot[] = "root";
4845aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hinesstatic const char kInit[] = "init";
4855aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hinesstatic const char kRsDtor[] = ".rs.dtor";
4865aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hinesstatic const char kRsInfo[] = ".rs.info";
4875aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hinesstatic const char kRsGlobalEntries[] = ".rs.global_entries";
4885aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hinesstatic const char kRsGlobalNames[] = ".rs.global_names";
4895aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hinesstatic const char kRsGlobalAddresses[] = ".rs.global_addresses";
4905aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hinesstatic const char kRsGlobalSizes[] = ".rs.global_sizes";
4915aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hinesstatic const char kRsGlobalProperties[] = ".rs.global_properties";
4925aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hines
4935aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hinesstatic inline uint32_t getGlobalRsType(uint32_t properties) {
4945aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hines    return properties & RS_GLOBAL_TYPE;
4955aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hines}
4965aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hinesstatic inline bool isGlobalConstant(uint32_t properties) {
4975aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hines    return properties & RS_GLOBAL_CONSTANT;
4985aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hines}
4995aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hinesstatic inline bool isGlobalStatic(uint32_t properties) {
5005aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hines    return properties & RS_GLOBAL_STATIC;
5015aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hines}
5025aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hinesstatic inline bool isGlobalPointer(uint32_t properties) {
5035aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hines    return properties & RS_GLOBAL_POINTER;
5045aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hines}
5055aa018cc36e589b07674957714d27ae3d1fa1c4eStephen Hines
506bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#ifdef __cplusplus
507bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
508bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#endif
509bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
510bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#endif // RENDER_SCRIPT_DEFINES_H
511