rsdRuntimeStubs.cpp revision 7153e1c8232882ee2bd7b975791a21e1ed9732fd
187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams/* 2709a0978ae141198018ca9769f8d96292a8928e6Jason Sams * Copyright (C) 2011-2012 The Android Open Source Project 387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * 487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * you may not use this file except in compliance with the License. 687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * You may obtain a copy of the License at 787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * 887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * http://www.apache.org/licenses/LICENSE-2.0 987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * 1087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * Unless required by applicable law or agreed to in writing, software 1187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * distributed under the License is distributed on an "AS IS" BASIS, 1287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * See the License for the specific language governing permissions and 1487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams * limitations under the License. 1587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams */ 1687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 1787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include "rsContext.h" 1887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include "rsScriptC.h" 1987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include "rsMatrix4x4.h" 2087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include "rsMatrix3x3.h" 2187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include "rsMatrix2x2.h" 2287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include "rsRuntime.h" 2387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 2487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include "rsdCore.h" 25807fdc4b6f3fb893015ee136565d6151bb2332d3Jason Sams#include "rsdBcc.h" 2687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 279e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams#include "rsdPath.h" 28b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams#include "rsdAllocation.h" 29414a46166126da6864258bd25ff183f9a3c6261dStephen Hines#include "rsdShaderCache.h" 30414a46166126da6864258bd25ff183f9a3c6261dStephen Hines#include "rsdVertexArray.h" 3187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 3287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include <time.h> 3387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 3487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsusing namespace android; 3587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsusing namespace android::renderscript; 3687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 37a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef float float2 __attribute__((ext_vector_type(2))); 38a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef float float3 __attribute__((ext_vector_type(3))); 39a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef float float4 __attribute__((ext_vector_type(4))); 405261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef double double2 __attribute__((ext_vector_type(2))); 415261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef double double3 __attribute__((ext_vector_type(3))); 425261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef double double4 __attribute__((ext_vector_type(4))); 43a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef char char2 __attribute__((ext_vector_type(2))); 44a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef char char3 __attribute__((ext_vector_type(3))); 45a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef char char4 __attribute__((ext_vector_type(4))); 46a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned char uchar2 __attribute__((ext_vector_type(2))); 47a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned char uchar3 __attribute__((ext_vector_type(3))); 48a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned char uchar4 __attribute__((ext_vector_type(4))); 49d8b8f8a16415496acc9844a89599ce7f377bd04dJason Samstypedef int16_t short2 __attribute__((ext_vector_type(2))); 50d8b8f8a16415496acc9844a89599ce7f377bd04dJason Samstypedef int16_t short3 __attribute__((ext_vector_type(3))); 51d8b8f8a16415496acc9844a89599ce7f377bd04dJason Samstypedef int16_t short4 __attribute__((ext_vector_type(4))); 52d8b8f8a16415496acc9844a89599ce7f377bd04dJason Samstypedef uint16_t ushort2 __attribute__((ext_vector_type(2))); 53d8b8f8a16415496acc9844a89599ce7f377bd04dJason Samstypedef uint16_t ushort3 __attribute__((ext_vector_type(3))); 54d8b8f8a16415496acc9844a89599ce7f377bd04dJason Samstypedef uint16_t ushort4 __attribute__((ext_vector_type(4))); 55a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef int32_t int2 __attribute__((ext_vector_type(2))); 56a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef int32_t int3 __attribute__((ext_vector_type(3))); 57a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef int32_t int4 __attribute__((ext_vector_type(4))); 58a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef uint32_t uint2 __attribute__((ext_vector_type(2))); 59a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef uint32_t uint3 __attribute__((ext_vector_type(3))); 60a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef uint32_t uint4 __attribute__((ext_vector_type(4))); 61d8b8f8a16415496acc9844a89599ce7f377bd04dJason Samstypedef int64_t long2 __attribute__((ext_vector_type(2))); 62d8b8f8a16415496acc9844a89599ce7f377bd04dJason Samstypedef int64_t long3 __attribute__((ext_vector_type(3))); 63d8b8f8a16415496acc9844a89599ce7f377bd04dJason Samstypedef int64_t long4 __attribute__((ext_vector_type(4))); 64d8b8f8a16415496acc9844a89599ce7f377bd04dJason Samstypedef uint64_t ulong2 __attribute__((ext_vector_type(2))); 65d8b8f8a16415496acc9844a89599ce7f377bd04dJason Samstypedef uint64_t ulong3 __attribute__((ext_vector_type(3))); 66d8b8f8a16415496acc9844a89599ce7f377bd04dJason Samstypedef uint64_t ulong4 __attribute__((ext_vector_type(4))); 6787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 685261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef uint8_t uchar; 695261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef uint16_t ushort; 705261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef uint32_t uint; 710b575de8ed0b628d84d256f5846500b0385979bdTim Murray#ifndef RS_SERVER 725261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef uint64_t ulong; 730b575de8ed0b628d84d256f5846500b0385979bdTim Murray#endif 7487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 75127d51c1193f4055795da967d47a13bedd3cb951Miao Wang#ifndef __LP64__ 76d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray#define OPAQUETYPE(t) \ 77d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray typedef struct { const int* const p; } __attribute__((packed, aligned(4))) t; 78127d51c1193f4055795da967d47a13bedd3cb951Miao Wang#else 79127d51c1193f4055795da967d47a13bedd3cb951Miao Wang#define OPAQUETYPE(t) \ 80127d51c1193f4055795da967d47a13bedd3cb951Miao Wang typedef struct { const void* p; const void* r; const void* v1; const void* v2; } t; 81127d51c1193f4055795da967d47a13bedd3cb951Miao Wang#endif 82d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 83d6f1f46b2929ed56c73ba32357cde31b82972fbeTim MurrayOPAQUETYPE(rs_element) 84d6f1f46b2929ed56c73ba32357cde31b82972fbeTim MurrayOPAQUETYPE(rs_type) 85d6f1f46b2929ed56c73ba32357cde31b82972fbeTim MurrayOPAQUETYPE(rs_allocation) 86d6f1f46b2929ed56c73ba32357cde31b82972fbeTim MurrayOPAQUETYPE(rs_sampler) 87d6f1f46b2929ed56c73ba32357cde31b82972fbeTim MurrayOPAQUETYPE(rs_script) 88d6f1f46b2929ed56c73ba32357cde31b82972fbeTim MurrayOPAQUETYPE(rs_script_call) 892544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 902544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga NainarOPAQUETYPE(rs_program_fragment); 912544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga NainarOPAQUETYPE(rs_program_store); 922544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga NainarOPAQUETYPE(rs_program_vertex); 932544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga NainarOPAQUETYPE(rs_program_raster); 942544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 952544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga NainarOPAQUETYPE(rs_mesh); 962544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga NainarOPAQUETYPE(rs_font); 972544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga NainarOPAQUETYPE(rs_path); 982544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 99d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray#undef OPAQUETYPE 100d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 1017a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hinestypedef enum { 1027a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines // Empty to avoid conflicting definitions with RsAllocationCubemapFace 1037a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines} rs_allocation_cubemap_face; 1047a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines 105d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murraytypedef struct { 106d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray int tm_sec; ///< seconds 107d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray int tm_min; ///< minutes 108d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray int tm_hour; ///< hours 109d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray int tm_mday; ///< day of the month 110d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray int tm_mon; ///< month 111d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray int tm_year; ///< year 112d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray int tm_wday; ///< day of the week 113d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray int tm_yday; ///< day of the year 114d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray int tm_isdst; ///< daylight savings time 115d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray} rs_tm; 116d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 11731729ad313f009d430255bfac8ef644db0c9215bYong Chen#ifndef __LP64__ 11831729ad313f009d430255bfac8ef644db0c9215bYong Chentypedef android::renderscript::rs_script RS_TY_SCRIPT; 11931729ad313f009d430255bfac8ef644db0c9215bYong Chentypedef android::renderscript::rs_allocation RS_TY_ALLOC; 12031729ad313f009d430255bfac8ef644db0c9215bYong Chen 12131729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic inline Script* rsGetObjPtr(RS_TY_SCRIPT s) { 12231729ad313f009d430255bfac8ef644db0c9215bYong Chen return const_cast<Script*>(s.p); 12331729ad313f009d430255bfac8ef644db0c9215bYong Chen} 12431729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic inline Allocation* rsGetObjPtr(RS_TY_ALLOC a) { 12531729ad313f009d430255bfac8ef644db0c9215bYong Chen return const_cast<Allocation*>(a.p); 12631729ad313f009d430255bfac8ef644db0c9215bYong Chen} 12731729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic inline RS_TY_SCRIPT rsTyCast(::rs_script s) { 12831729ad313f009d430255bfac8ef644db0c9215bYong Chen RS_TY_SCRIPT cast; 12931729ad313f009d430255bfac8ef644db0c9215bYong Chen cast.p = (const Script*)s.p; 13031729ad313f009d430255bfac8ef644db0c9215bYong Chen return cast; 13131729ad313f009d430255bfac8ef644db0c9215bYong Chen} 13231729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic inline RS_TY_ALLOC rsTyCast(::rs_allocation a) { 13331729ad313f009d430255bfac8ef644db0c9215bYong Chen RS_TY_ALLOC cast; 13431729ad313f009d430255bfac8ef644db0c9215bYong Chen cast.p = (const Allocation*)a.p; 13531729ad313f009d430255bfac8ef644db0c9215bYong Chen return cast; 13631729ad313f009d430255bfac8ef644db0c9215bYong Chen} 13731729ad313f009d430255bfac8ef644db0c9215bYong Chen#define RS_CAST(a) rsTyCast(a) 13831729ad313f009d430255bfac8ef644db0c9215bYong Chen 13931729ad313f009d430255bfac8ef644db0c9215bYong Chen#else 14031729ad313f009d430255bfac8ef644db0c9215bYong Chen 14131729ad313f009d430255bfac8ef644db0c9215bYong Chentypedef android::renderscript::rs_script* RS_TY_SCRIPT; 14231729ad313f009d430255bfac8ef644db0c9215bYong Chentypedef android::renderscript::rs_allocation* RS_TY_ALLOC; 14331729ad313f009d430255bfac8ef644db0c9215bYong Chen 14431729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic inline Script* rsGetObjPtr(RS_TY_SCRIPT s) { 14531729ad313f009d430255bfac8ef644db0c9215bYong Chen return const_cast<Script*>(s->p); 14631729ad313f009d430255bfac8ef644db0c9215bYong Chen} 14731729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic inline Allocation* rsGetObjPtr(RS_TY_ALLOC a) { 14831729ad313f009d430255bfac8ef644db0c9215bYong Chen return const_cast<Allocation*>(a->p); 14931729ad313f009d430255bfac8ef644db0c9215bYong Chen} 15031729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic inline RS_TY_SCRIPT rsTyCast(::rs_script *s) { 15131729ad313f009d430255bfac8ef644db0c9215bYong Chen return reinterpret_cast<RS_TY_SCRIPT>(s); 15231729ad313f009d430255bfac8ef644db0c9215bYong Chen} 15331729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic inline RS_TY_ALLOC rsTyCast(::rs_allocation *a) { 15431729ad313f009d430255bfac8ef644db0c9215bYong Chen return reinterpret_cast<RS_TY_ALLOC>(a); 15531729ad313f009d430255bfac8ef644db0c9215bYong Chen} 15631729ad313f009d430255bfac8ef644db0c9215bYong Chen#define RS_CAST(a) rsTyCast(&(a)) 15731729ad313f009d430255bfac8ef644db0c9215bYong Chen 15831729ad313f009d430255bfac8ef644db0c9215bYong Chen#endif 15931729ad313f009d430255bfac8ef644db0c9215bYong Chen 1607153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar// Some RS functions are not threadsafe but can be called from an invoke 1617153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar// function. Instead of summarily marking scripts that call these functions as 1627153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar// not-threadable we detect calls to them in the driver and sends a fatal error 1637153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar// message. 1647153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainarstatic bool failIfInKernel(Context *rsc, const char *funcName) { 1657153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar RsdHal *dc = (RsdHal *)rsc->mHal.drv; 1667153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar RsdCpuReference *impl = (RsdCpuReference *) dc->mCpuRef; 1677153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar 1687153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar if (impl->getInForEach()) { 1697153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar char buf[256]; 1707153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar sprintf(buf, "Error: Call to unsupported function %s " 1717153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar "in kernel", funcName); 1727153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar rsc->setError(RS_ERROR_FATAL_DRIVER, buf); 1737153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar return true; 1747153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar } 1757153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar return false; 1767153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar} 1777153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar 17887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 17987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// Allocation 18087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 18187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 18287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 18331729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic void SC_AllocationSyncAll2(RS_TY_ALLOC a, RsAllocationUsageType source) { 184709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 18531729ad313f009d430255bfac8ef644db0c9215bYong Chen rsrAllocationSyncAll(rsc, rsGetObjPtr(a), source); 18687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 18787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 18831729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic void SC_AllocationSyncAll(RS_TY_ALLOC a) { 189709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 19031729ad313f009d430255bfac8ef644db0c9215bYong Chen rsrAllocationSyncAll(rsc, rsGetObjPtr(a), RS_ALLOCATION_USAGE_SCRIPT); 19187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 19287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 1931aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray#ifndef RS_COMPATIBILITY_LIB 1941aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray 19531729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic void SC_AllocationCopy1DRange(RS_TY_ALLOC dstAlloc, 19674a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t dstOff, 19774a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t dstMip, 19874a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t count, 19931729ad313f009d430255bfac8ef644db0c9215bYong Chen RS_TY_ALLOC srcAlloc, 20074a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t srcOff, uint32_t srcMip) { 201709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 2027153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar if (failIfInKernel(rsc, "rsAllocationCopy1DRange")) 2037153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar return; 2047153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar 20531729ad313f009d430255bfac8ef644db0c9215bYong Chen rsrAllocationCopy1DRange(rsc, rsGetObjPtr(dstAlloc), dstOff, dstMip, count, 20631729ad313f009d430255bfac8ef644db0c9215bYong Chen rsGetObjPtr(srcAlloc), srcOff, srcMip); 20774a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk} 20874a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk 20931729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic void SC_AllocationCopy2DRange(RS_TY_ALLOC dstAlloc, 21074a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t dstXoff, uint32_t dstYoff, 21174a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t dstMip, uint32_t dstFace, 21274a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t width, uint32_t height, 21331729ad313f009d430255bfac8ef644db0c9215bYong Chen RS_TY_ALLOC srcAlloc, 21474a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t srcXoff, uint32_t srcYoff, 21574a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t srcMip, uint32_t srcFace) { 216709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 2177153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar if (failIfInKernel(rsc, "rsAllocationCopy2DRange")) 2187153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar return; 2197153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar 22031729ad313f009d430255bfac8ef644db0c9215bYong Chen rsrAllocationCopy2DRange(rsc, rsGetObjPtr(dstAlloc), 221a94952436aeb251f587c1bccdf94c7f75285dfe2Alex Sakhartchouk dstXoff, dstYoff, dstMip, dstFace, 22231729ad313f009d430255bfac8ef644db0c9215bYong Chen width, height, rsGetObjPtr(srcAlloc), 223a94952436aeb251f587c1bccdf94c7f75285dfe2Alex Sakhartchouk srcXoff, srcYoff, srcMip, srcFace); 22474a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk} 22574a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk 22631729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic void SC_AllocationIoSend(RS_TY_ALLOC alloc) { 2271aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray Context *rsc = RsdCpuReference::getTlsContext(); 2287153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar if (failIfInKernel(rsc, "rsAllocationIoSend")) 2297153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar return; 2307153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar 23131729ad313f009d430255bfac8ef644db0c9215bYong Chen rsrAllocationIoSend(rsc, rsGetObjPtr(alloc)); 2321aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray} 2331aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray 2341aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray 23531729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic void SC_AllocationIoReceive(RS_TY_ALLOC alloc) { 2361aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray Context *rsc = RsdCpuReference::getTlsContext(); 2377153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar if (failIfInKernel(rsc, "rsAllocationIoReceive")) 2387153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar return; 2397153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar 24031729ad313f009d430255bfac8ef644db0c9215bYong Chen rsrAllocationIoReceive(rsc, rsGetObjPtr(alloc)); 2411aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray} 2421aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray 2431aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray#else 2441aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray 24531729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic void SC_AllocationCopy1DRange(RS_TY_ALLOC dstAlloc, 2461aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray uint32_t dstOff, 2471aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray uint32_t dstMip, 2481aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray uint32_t count, 24931729ad313f009d430255bfac8ef644db0c9215bYong Chen RS_TY_ALLOC srcAlloc, 2501aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray uint32_t srcOff, uint32_t srcMip) { 2511aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray Context *rsc = RsdCpuReference::getTlsContext(); 2527153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar if (failIfInKernel(rsc, "rsAllocationCopy1DRange")) 2537153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar return; 2547153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar 25531729ad313f009d430255bfac8ef644db0c9215bYong Chen rsrAllocationCopy1DRange(rsc, rsGetObjPtr(dstAlloc), dstOff, dstMip, count, 25631729ad313f009d430255bfac8ef644db0c9215bYong Chen rsGetObjPtr(srcAlloc), srcOff, srcMip); 2571aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray} 2581aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray 25931729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic void SC_AllocationCopy2DRange(RS_TY_ALLOC dstAlloc, 2601aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray uint32_t dstXoff, uint32_t dstYoff, 2611aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray uint32_t dstMip, uint32_t dstFace, 2621aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray uint32_t width, uint32_t height, 26331729ad313f009d430255bfac8ef644db0c9215bYong Chen RS_TY_ALLOC srcAlloc, 2641aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray uint32_t srcXoff, uint32_t srcYoff, 2651aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray uint32_t srcMip, uint32_t srcFace) { 2661aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray Context *rsc = RsdCpuReference::getTlsContext(); 2677153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar if (failIfInKernel(rsc, "rsAllocationCopy2DRange")) 2687153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar return; 2697153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar 27031729ad313f009d430255bfac8ef644db0c9215bYong Chen rsrAllocationCopy2DRange(rsc, rsGetObjPtr(dstAlloc), 2711aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray dstXoff, dstYoff, dstMip, dstFace, 2721aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray width, height, 27331729ad313f009d430255bfac8ef644db0c9215bYong Chen rsGetObjPtr(srcAlloc), 2741aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray srcXoff, srcYoff, srcMip, srcFace); 2751aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray} 2761aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray 27731729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic void SC_AllocationIoSend(RS_TY_ALLOC alloc) { 278709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 2797153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar if (failIfInKernel(rsc, "rsAllocationIoSend")) 2807153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar return; 2817153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar 28231729ad313f009d430255bfac8ef644db0c9215bYong Chen rsrAllocationIoSend(rsc, rsGetObjPtr(alloc)); 283b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams} 284b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams 285b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams 28631729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic void SC_AllocationIoReceive(RS_TY_ALLOC alloc) { 287709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 2887153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar if (failIfInKernel(rsc, "rsAllocationIoReceive")) 2897153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar return; 2907153e1c8232882ee2bd7b975791a21e1ed9732fdPirama Arumuga Nainar 29131729ad313f009d430255bfac8ef644db0c9215bYong Chen rsrAllocationIoReceive(rsc, rsGetObjPtr(alloc)); 292b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams} 293b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams 2941aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray#endif 2951aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray 2967a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines#ifndef RS_COMPATIBILITY_LIB 29774a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk 29887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 29987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// Context 30087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 30187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 30287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindTexture(ProgramFragment *pf, uint32_t slot, Allocation *a) { 303709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 304709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindTexture(rsc, pf, slot, a); 30587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 30687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 307a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchoukstatic void SC_BindVertexConstant(ProgramVertex *pv, uint32_t slot, Allocation *a) { 308709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 309709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindConstant(rsc, pv, slot, a); 310a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchouk} 311a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchouk 312a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchoukstatic void SC_BindFragmentConstant(ProgramFragment *pf, uint32_t slot, Allocation *a) { 313709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 314709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindConstant(rsc, pf, slot, a); 315a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchouk} 316a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchouk 31787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindSampler(ProgramFragment *pf, uint32_t slot, Sampler *s) { 318709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 319709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindSampler(rsc, pf, slot, s); 32087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 32187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 32287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindProgramStore(ProgramStore *ps) { 323709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 324709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindProgramStore(rsc, ps); 32587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 32687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 32787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindProgramFragment(ProgramFragment *pf) { 328709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 329709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindProgramFragment(rsc, pf); 33087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 33187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 33287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindProgramVertex(ProgramVertex *pv) { 333709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 334709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindProgramVertex(rsc, pv); 33587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 33687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 33787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindProgramRaster(ProgramRaster *pr) { 338709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 339709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindProgramRaster(rsc, pr); 34087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 34187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 34287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindFrameBufferObjectColorTarget(Allocation *a, uint32_t slot) { 343709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 344709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindFrameBufferObjectColorTarget(rsc, a, slot); 34587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 34687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 34787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindFrameBufferObjectDepthTarget(Allocation *a) { 348709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 349709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindFrameBufferObjectDepthTarget(rsc, a); 35087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 35187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 35287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_ClearFrameBufferObjectColorTarget(uint32_t slot) { 353709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 354709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrClearFrameBufferObjectColorTarget(rsc, slot); 35587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 35687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 35787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_ClearFrameBufferObjectDepthTarget(Context *, Script *) { 358709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 359709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrClearFrameBufferObjectDepthTarget(rsc); 36087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 36187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 36287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_ClearFrameBufferObjectTargets(Context *, Script *) { 363709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 364709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrClearFrameBufferObjectTargets(rsc); 36587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 36687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 36787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 36887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 36987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// VP 37087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 37187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 37287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_VpLoadProjectionMatrix(const rsc_Matrix *m) { 373709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 374709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrVpLoadProjectionMatrix(rsc, m); 37587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 37687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 37787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_VpLoadModelMatrix(const rsc_Matrix *m) { 378709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 379709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrVpLoadModelMatrix(rsc, m); 38087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 38187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 38287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_VpLoadTextureMatrix(const rsc_Matrix *m) { 383709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 384709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrVpLoadTextureMatrix(rsc, m); 38587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 38687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 38787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_PfConstantColor(ProgramFragment *pf, float r, float g, float b, float a) { 388709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 389709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrPfConstantColor(rsc, pf, r, g, b, a); 39087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 39187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 39287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_VpGetProjectionMatrix(rsc_Matrix *m) { 393709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 394709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrVpGetProjectionMatrix(rsc, m); 39587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 39687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 39787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 39887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 39987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// Drawing 40087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 40187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 40287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawQuadTexCoords(float x1, float y1, float z1, float u1, float v1, 40387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float x2, float y2, float z2, float u2, float v2, 40487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float x3, float y3, float z3, float u3, float v3, 40587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float x4, float y4, float z4, float u4, float v4) { 406709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 407414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 408414a46166126da6864258bd25ff183f9a3c6261dStephen Hines if (!rsc->setupCheck()) { 409414a46166126da6864258bd25ff183f9a3c6261dStephen Hines return; 410414a46166126da6864258bd25ff183f9a3c6261dStephen Hines } 411414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 412414a46166126da6864258bd25ff183f9a3c6261dStephen Hines RsdHal *dc = (RsdHal *)rsc->mHal.drv; 413414a46166126da6864258bd25ff183f9a3c6261dStephen Hines if (!dc->gl.shaderCache->setup(rsc)) { 414414a46166126da6864258bd25ff183f9a3c6261dStephen Hines return; 415414a46166126da6864258bd25ff183f9a3c6261dStephen Hines } 416414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 417414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //ALOGE("Quad"); 418414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //ALOGE("%4.2f, %4.2f, %4.2f", x1, y1, z1); 419414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //ALOGE("%4.2f, %4.2f, %4.2f", x2, y2, z2); 420414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //ALOGE("%4.2f, %4.2f, %4.2f", x3, y3, z3); 421414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //ALOGE("%4.2f, %4.2f, %4.2f", x4, y4, z4); 422414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 423414a46166126da6864258bd25ff183f9a3c6261dStephen Hines float vtx[] = {x1,y1,z1, x2,y2,z2, x3,y3,z3, x4,y4,z4}; 424414a46166126da6864258bd25ff183f9a3c6261dStephen Hines const float tex[] = {u1,v1, u2,v2, u3,v3, u4,v4}; 425414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 426414a46166126da6864258bd25ff183f9a3c6261dStephen Hines RsdVertexArray::Attrib attribs[2]; 427e195a3f57ace3b66d313a6ee88c6e93d5c9d87f4Tim Murray attribs[0].set(GL_FLOAT, 3, 12, false, (size_t)vtx, "ATTRIB_position"); 428e195a3f57ace3b66d313a6ee88c6e93d5c9d87f4Tim Murray attribs[1].set(GL_FLOAT, 2, 8, false, (size_t)tex, "ATTRIB_texture0"); 429414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 430414a46166126da6864258bd25ff183f9a3c6261dStephen Hines RsdVertexArray va(attribs, 2); 431414a46166126da6864258bd25ff183f9a3c6261dStephen Hines va.setup(rsc); 432414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 433414a46166126da6864258bd25ff183f9a3c6261dStephen Hines RSD_CALL_GL(glDrawArrays, GL_TRIANGLE_FAN, 0, 4); 43487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 43587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 43687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawQuad(float x1, float y1, float z1, 43787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float x2, float y2, float z2, 43887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float x3, float y3, float z3, 43987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float x4, float y4, float z4) { 440414a46166126da6864258bd25ff183f9a3c6261dStephen Hines SC_DrawQuadTexCoords(x1, y1, z1, 0, 1, 441414a46166126da6864258bd25ff183f9a3c6261dStephen Hines x2, y2, z2, 1, 1, 442414a46166126da6864258bd25ff183f9a3c6261dStephen Hines x3, y3, z3, 1, 0, 443414a46166126da6864258bd25ff183f9a3c6261dStephen Hines x4, y4, z4, 0, 0); 44487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 44587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 44687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawSpriteScreenspace(float x, float y, float z, float w, float h) { 447709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 448414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 449414a46166126da6864258bd25ff183f9a3c6261dStephen Hines ObjectBaseRef<const ProgramVertex> tmp(rsc->getProgramVertex()); 450414a46166126da6864258bd25ff183f9a3c6261dStephen Hines rsc->setProgramVertex(rsc->getDefaultProgramVertex()); 451414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //rsc->setupCheck(); 452414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 453414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //GLint crop[4] = {0, h, w, -h}; 454414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 455414a46166126da6864258bd25ff183f9a3c6261dStephen Hines float sh = rsc->getHeight(); 456414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 457414a46166126da6864258bd25ff183f9a3c6261dStephen Hines SC_DrawQuad(x, sh - y, z, 458414a46166126da6864258bd25ff183f9a3c6261dStephen Hines x+w, sh - y, z, 459414a46166126da6864258bd25ff183f9a3c6261dStephen Hines x+w, sh - (y+h), z, 460414a46166126da6864258bd25ff183f9a3c6261dStephen Hines x, sh - (y+h), z); 461414a46166126da6864258bd25ff183f9a3c6261dStephen Hines rsc->setProgramVertex((ProgramVertex *)tmp.get()); 46287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 46387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 46487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawRect(float x1, float y1, float x2, float y2, float z) { 465414a46166126da6864258bd25ff183f9a3c6261dStephen Hines SC_DrawQuad(x1, y2, z, x2, y2, z, x2, y1, z, x1, y1, z); 46687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 46787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 4689e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Samsstatic void SC_DrawPath(Path *p) { 469709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 4709e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams rsdPathDraw(rsc, p); 4719e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams} 4729e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams 47387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawMesh(Mesh *m) { 474709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 475709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrDrawMesh(rsc, m); 47687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 47787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 47887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawMeshPrimitive(Mesh *m, uint32_t primIndex) { 479709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 480709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrDrawMeshPrimitive(rsc, m, primIndex); 48187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 48287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 48387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawMeshPrimitiveRange(Mesh *m, uint32_t primIndex, uint32_t start, uint32_t len) { 484709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 485709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrDrawMeshPrimitiveRange(rsc, m, primIndex, start, len); 48687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 48787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 48887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_MeshComputeBoundingBox(Mesh *m, 48987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float *minX, float *minY, float *minZ, 49087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float *maxX, float *maxY, float *maxZ) { 491709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 492709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrMeshComputeBoundingBox(rsc, m, minX, minY, minZ, maxX, maxY, maxZ); 49387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 49487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 49587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 49687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 49787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 49887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// 49987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 50087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 50187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 50287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_Color(float r, float g, float b, float a) { 503709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 504709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrColor(rsc, r, g, b, a); 50587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 50687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 50787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_Finish() { 508709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 509653b53ebcd2bedc94ac486080d2e82e1920232e3Alex Sakhartchouk rsdGLFinish(rsc); 51087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 51187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 51287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_ClearColor(float r, float g, float b, float a) { 513709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 514709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrPrepareClear(rsc); 515653b53ebcd2bedc94ac486080d2e82e1920232e3Alex Sakhartchouk rsdGLClearColor(rsc, r, g, b, a); 51687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 51787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 51887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_ClearDepth(float v) { 519709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 520709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrPrepareClear(rsc); 521653b53ebcd2bedc94ac486080d2e82e1920232e3Alex Sakhartchouk rsdGLClearDepth(rsc, v); 52287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 52387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 52487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic uint32_t SC_GetWidth() { 525709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 526709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrGetWidth(rsc); 52787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 52887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 52987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic uint32_t SC_GetHeight() { 530709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 531709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrGetHeight(rsc); 53287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 53387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 53487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawTextAlloc(Allocation *a, int x, int y) { 535709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 536709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrDrawTextAlloc(rsc, a, x, y); 53787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 53887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 53987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawText(const char *text, int x, int y) { 540709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 541709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrDrawText(rsc, text, x, y); 54287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 54387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 54487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_MeasureTextAlloc(Allocation *a, 54587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams int32_t *left, int32_t *right, int32_t *top, int32_t *bottom) { 546709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 547709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrMeasureTextAlloc(rsc, a, left, right, top, bottom); 54887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 54987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 55087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_MeasureText(const char *text, 55187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams int32_t *left, int32_t *right, int32_t *top, int32_t *bottom) { 552709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 553709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrMeasureText(rsc, text, left, right, top, bottom); 55487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 55587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 55687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindFont(Font *f) { 557709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 558709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindFont(rsc, f); 55987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 56087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 56187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_FontColor(float r, float g, float b, float a) { 562709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 563709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrFontColor(rsc, r, g, b, a); 56487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 565110f181b7966212a36ef18016f9b81c7322d0a2fJason Sams#endif 56687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 56787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 56887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 56987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// 57087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 57187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 5721aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murraystatic void SC_ClearObject(rs_object_base *dst) { 5731aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray Context *rsc = RsdCpuReference::getTlsContext(); 5741aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray rsrClearObject(rsc, dst); 5751aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray} 576dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar 5771aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murraystatic void SC_SetObject(rs_object_base *dst, rs_object_base src) { 578a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams // ALOGE("SC_SetObject: dst = %p, src = %p", dst, src.p); 579a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams // ALOGE("SC_SetObject: dst[0] = %p", dst[0]); 580a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 5811aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray rsrSetObject(rsc, dst, (ObjectBase*)src.p); 58287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 58387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 5841aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murraystatic bool SC_IsObject(rs_object_base o) { 585709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 5861aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray return rsrIsObject(rsc, o); 5871aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray} 588444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen 589127d51c1193f4055795da967d47a13bedd3cb951Miao Wang#ifdef __LP64__ 590127d51c1193f4055795da967d47a13bedd3cb951Miao Wangstatic void SC_SetObject_ByRef(rs_object_base *dst, rs_object_base *src) { 59131729ad313f009d430255bfac8ef644db0c9215bYong Chen // ALOGE("SC_SetObject_ByRef: dst = %p, src = %p", dst, src->p); 592127d51c1193f4055795da967d47a13bedd3cb951Miao Wang Context *rsc = RsdCpuReference::getTlsContext(); 593127d51c1193f4055795da967d47a13bedd3cb951Miao Wang rsrSetObject(rsc, dst, (ObjectBase*)src->p); 594127d51c1193f4055795da967d47a13bedd3cb951Miao Wang} 595127d51c1193f4055795da967d47a13bedd3cb951Miao Wang 596127d51c1193f4055795da967d47a13bedd3cb951Miao Wangstatic bool SC_IsObject_ByRef(rs_object_base *o) { 597127d51c1193f4055795da967d47a13bedd3cb951Miao Wang Context *rsc = RsdCpuReference::getTlsContext(); 598127d51c1193f4055795da967d47a13bedd3cb951Miao Wang return rsrIsObject(rsc, *o); 599127d51c1193f4055795da967d47a13bedd3cb951Miao Wang} 600127d51c1193f4055795da967d47a13bedd3cb951Miao Wang#endif 601127d51c1193f4055795da967d47a13bedd3cb951Miao Wang 602240a6c96eb94734a84eed53349fb0928d3ce6d19Tim Murray 60347211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray#ifndef RS_COMPATIBILITY_LIB 60447211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray#ifndef __LP64__ 605240a6c96eb94734a84eed53349fb0928d3ce6d19Tim Murray 606240a6c96eb94734a84eed53349fb0928d3ce6d19Tim Murray// i386 has different struct return passing to ARM; emulate with void* 607240a6c96eb94734a84eed53349fb0928d3ce6d19Tim Murray#ifdef __i386__ 608240a6c96eb94734a84eed53349fb0928d3ce6d19Tim Murraystatic const void* SC_GetAllocation(const void *ptr) { 609240a6c96eb94734a84eed53349fb0928d3ce6d19Tim Murray Context *rsc = RsdCpuReference::getTlsContext(); 610240a6c96eb94734a84eed53349fb0928d3ce6d19Tim Murray const Script *sc = RsdCpuReference::getTlsScript(); 611240a6c96eb94734a84eed53349fb0928d3ce6d19Tim Murray Allocation* alloc = rsdScriptGetAllocationForPointer(rsc, sc, ptr); 612240a6c96eb94734a84eed53349fb0928d3ce6d19Tim Murray android::renderscript::rs_allocation obj = {0}; 613240a6c96eb94734a84eed53349fb0928d3ce6d19Tim Murray alloc->callUpdateCacheObject(rsc, &obj); 614240a6c96eb94734a84eed53349fb0928d3ce6d19Tim Murray return (void*)obj.p; 615240a6c96eb94734a84eed53349fb0928d3ce6d19Tim Murray} 616240a6c96eb94734a84eed53349fb0928d3ce6d19Tim Murray#else 617240a6c96eb94734a84eed53349fb0928d3ce6d19Tim Murray// ARMv7/MIPS 61847211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murraystatic const android::renderscript::rs_allocation SC_GetAllocation(const void *ptr) { 619709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 620709a0978ae141198018ca9769f8d96292a8928e6Jason Sams const Script *sc = RsdCpuReference::getTlsScript(); 62147211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray Allocation* alloc = rsdScriptGetAllocationForPointer(rsc, sc, ptr); 62247211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray android::renderscript::rs_allocation obj = {0}; 62347211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray alloc->callUpdateCacheObject(rsc, &obj); 62447211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray return obj; 62547211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray} 626240a6c96eb94734a84eed53349fb0928d3ce6d19Tim Murray#endif 62747211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray#else 628240a6c96eb94734a84eed53349fb0928d3ce6d19Tim Murray// AArch64/x86_64/MIPS64 62947211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murraystatic const android::renderscript::rs_allocation SC_GetAllocation(const void *ptr) { 63047211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray Context *rsc = RsdCpuReference::getTlsContext(); 63147211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray const Script *sc = RsdCpuReference::getTlsScript(); 63247211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray Allocation* alloc = rsdScriptGetAllocationForPointer(rsc, sc, ptr); 63347211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray android::renderscript::rs_allocation obj = {0, 0, 0, 0}; 63447211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray alloc->callUpdateCacheObject(rsc, &obj); 63547211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray return obj; 63687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 63747211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray#endif 63847211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray#endif 63987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 640dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar 64131729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic void SC_ForEach_SAA(RS_TY_SCRIPT target, RS_TY_ALLOC in, RS_TY_ALLOC out) { 642447e8362fc760b3d2789dbfe1eec33f1fc6b1c0ePirama Arumuga Nainar Context *rsc = RsdCpuReference::getTlsContext(); 64331729ad313f009d430255bfac8ef644db0c9215bYong Chen rsrForEach(rsc, rsGetObjPtr(target), rsGetObjPtr(in), rsGetObjPtr(out), nullptr, 0, nullptr); 644447e8362fc760b3d2789dbfe1eec33f1fc6b1c0ePirama Arumuga Nainar} 645c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams 64631729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic void SC_ForEach_SAAU(RS_TY_SCRIPT target, RS_TY_ALLOC in, 64731729ad313f009d430255bfac8ef644db0c9215bYong Chen RS_TY_ALLOC out, const void *usr) { 648709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 64931729ad313f009d430255bfac8ef644db0c9215bYong Chen rsrForEach(rsc, rsGetObjPtr(target), rsGetObjPtr(in), rsGetObjPtr(out), usr, 0, nullptr); 65087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 65187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 65231729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic void SC_ForEach_SAAUS(RS_TY_SCRIPT target, RS_TY_ALLOC in, 65331729ad313f009d430255bfac8ef644db0c9215bYong Chen RS_TY_ALLOC out, const void *usr, const RsScriptCall *call) { 654447e8362fc760b3d2789dbfe1eec33f1fc6b1c0ePirama Arumuga Nainar Context *rsc = RsdCpuReference::getTlsContext(); 65531729ad313f009d430255bfac8ef644db0c9215bYong Chen rsrForEach(rsc, rsGetObjPtr(target), rsGetObjPtr(in), rsGetObjPtr(out), usr, 0, call); 656447e8362fc760b3d2789dbfe1eec33f1fc6b1c0ePirama Arumuga Nainar} 65787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 6582f6dc8469a45fa2dafcb772c76009565d0c3885fTim Murray// These functions are only supported in 32-bit. 659444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen#ifndef __LP64__ 66031729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic void SC_ForEach_SAAUL(RS_TY_SCRIPT target, RS_TY_ALLOC in, 66131729ad313f009d430255bfac8ef644db0c9215bYong Chen RS_TY_ALLOC out, const void *usr, uint32_t usrLen) { 662447e8362fc760b3d2789dbfe1eec33f1fc6b1c0ePirama Arumuga Nainar Context *rsc = RsdCpuReference::getTlsContext(); 66331729ad313f009d430255bfac8ef644db0c9215bYong Chen rsrForEach(rsc, rsGetObjPtr(target), rsGetObjPtr(in), rsGetObjPtr(out), usr, usrLen, nullptr); 664447e8362fc760b3d2789dbfe1eec33f1fc6b1c0ePirama Arumuga Nainar} 665dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar 66631729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic void SC_ForEach_SAAULS(RS_TY_SCRIPT target, RS_TY_ALLOC in, RS_TY_ALLOC out, 66731729ad313f009d430255bfac8ef644db0c9215bYong Chen const void *usr, uint32_t usrLen, const RsScriptCall *call) { 668447e8362fc760b3d2789dbfe1eec33f1fc6b1c0ePirama Arumuga Nainar Context *rsc = RsdCpuReference::getTlsContext(); 66931729ad313f009d430255bfac8ef644db0c9215bYong Chen rsrForEach(rsc, rsGetObjPtr(target), rsGetObjPtr(in), rsGetObjPtr(out), usr, usrLen, call); 670447e8362fc760b3d2789dbfe1eec33f1fc6b1c0ePirama Arumuga Nainar} 6711aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray#endif 67287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 67387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 67487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 67587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// Time routines 67687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 67787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 67887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic float SC_GetDt() { 679709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 680709a0978ae141198018ca9769f8d96292a8928e6Jason Sams const Script *sc = RsdCpuReference::getTlsScript(); 68187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams return rsrGetDt(rsc, sc); 68287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 68387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 684dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar// #if !defined(RS_COMPATIBILITY_LIB) && defined(__LP64__) 685dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar#ifdef __LP64__ 68687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samstime_t SC_Time(time_t *timer) { 687709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 688709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrTime(rsc, timer); 68987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 690d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray#else 691d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murraystatic int SC_Time(int *timer) { 692d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray Context *rsc = RsdCpuReference::getTlsContext(); 693d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray return rsrTime(rsc, (long*)timer); 694d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray} 695d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray#endif 69687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 69787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samstm* SC_LocalTime(tm *local, time_t *timer) { 698709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 699709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrLocalTime(rsc, local, timer); 70087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 70187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 70287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsint64_t SC_UptimeMillis() { 703709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 704709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrUptimeMillis(rsc); 70587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 70687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 70787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsint64_t SC_UptimeNanos() { 708709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 709709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrUptimeNanos(rsc); 71087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 71187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 71287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 71387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// Message routines 71487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 71587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 716276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hinesstatic uint32_t SC_ToClient2(int cmdID, const void *data, uint32_t len) { 717709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 718709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrToClient(rsc, cmdID, data, len); 71987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 72087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 72187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic uint32_t SC_ToClient(int cmdID) { 722709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 72344bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return rsrToClient(rsc, cmdID, (const void *)nullptr, 0); 72487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 72587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 726276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hinesstatic uint32_t SC_ToClientBlocking2(int cmdID, const void *data, uint32_t len) { 727709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 728709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrToClientBlocking(rsc, cmdID, data, len); 72987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 73087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 73187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic uint32_t SC_ToClientBlocking(int cmdID) { 732709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 73344bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return rsrToClientBlocking(rsc, cmdID, (const void *)nullptr, 0); 73487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 73587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 73687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 7375261a5ea546ff358edd5aac7602fc4132434f481Jason Samsstatic void * ElementAt1D(Allocation *a, RsDataType dt, uint32_t vecSize, uint32_t x) { 7385261a5ea546ff358edd5aac7602fc4132434f481Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 7395261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const Type *t = a->getType(); 7405261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const Element *e = t->getElement(); 7415261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7425261a5ea546ff358edd5aac7602fc4132434f481Jason Sams char buf[256]; 7435261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (x >= t->getLODDimX(0)) { 7445261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Out range ElementAt X %i of %i", x, t->getLODDimX(0)); 745cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 74644bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 7475261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 7485261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 749d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams if (vecSize > 0) { 750d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams if (vecSize != e->getVectorSize()) { 751d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams sprintf(buf, "Vector size mismatch for ElementAt %i of %i", vecSize, e->getVectorSize()); 752cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 75344bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 754d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams } 755d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 756d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams if (dt != e->getType()) { 757d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams sprintf(buf, "Data type mismatch for ElementAt %i of %i", dt, e->getType()); 758cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 75944bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 760d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams } 7615261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 7625261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7635261a5ea546ff358edd5aac7602fc4132434f481Jason Sams uint8_t *p = (uint8_t *)a->mHal.drvState.lod[0].mallocPtr; 7645261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const uint32_t eSize = e->getSizeBytes(); 7655261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return &p[(eSize * x)]; 7665261a5ea546ff358edd5aac7602fc4132434f481Jason Sams} 7675261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7685261a5ea546ff358edd5aac7602fc4132434f481Jason Samsstatic void * ElementAt2D(Allocation *a, RsDataType dt, uint32_t vecSize, uint32_t x, uint32_t y) { 7695261a5ea546ff358edd5aac7602fc4132434f481Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 7705261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const Type *t = a->getType(); 7715261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const Element *e = t->getElement(); 7725261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7735261a5ea546ff358edd5aac7602fc4132434f481Jason Sams char buf[256]; 7745261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (x >= t->getLODDimX(0)) { 7755261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Out range ElementAt X %i of %i", x, t->getLODDimX(0)); 776cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 77744bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 7785261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 7795261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7805261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (y >= t->getLODDimY(0)) { 7815261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Out range ElementAt Y %i of %i", y, t->getLODDimY(0)); 782cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 78344bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 7845261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 7855261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 786d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams if (vecSize > 0) { 787d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams if (vecSize != e->getVectorSize()) { 788d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams sprintf(buf, "Vector size mismatch for ElementAt %i of %i", vecSize, e->getVectorSize()); 789cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 79044bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 791d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams } 792d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 793d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams if (dt != e->getType()) { 794d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams sprintf(buf, "Data type mismatch for ElementAt %i of %i", dt, e->getType()); 795cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 79644bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 797d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams } 7985261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 7995261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 8005261a5ea546ff358edd5aac7602fc4132434f481Jason Sams uint8_t *p = (uint8_t *)a->mHal.drvState.lod[0].mallocPtr; 8015261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const uint32_t eSize = e->getSizeBytes(); 8025261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const uint32_t stride = a->mHal.drvState.lod[0].stride; 8035261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return &p[(eSize * x) + (y * stride)]; 8045261a5ea546ff358edd5aac7602fc4132434f481Jason Sams} 8055261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 8065261a5ea546ff358edd5aac7602fc4132434f481Jason Samsstatic void * ElementAt3D(Allocation *a, RsDataType dt, uint32_t vecSize, uint32_t x, uint32_t y, uint32_t z) { 8075261a5ea546ff358edd5aac7602fc4132434f481Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 8085261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const Type *t = a->getType(); 8095261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const Element *e = t->getElement(); 8105261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 8115261a5ea546ff358edd5aac7602fc4132434f481Jason Sams char buf[256]; 8125261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (x >= t->getLODDimX(0)) { 8135261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Out range ElementAt X %i of %i", x, t->getLODDimX(0)); 814cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 81544bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 8165261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 8175261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 8185261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (y >= t->getLODDimY(0)) { 8195261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Out range ElementAt Y %i of %i", y, t->getLODDimY(0)); 820cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 82144bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 8225261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 8235261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 8245261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (z >= t->getLODDimZ(0)) { 8255261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Out range ElementAt Z %i of %i", z, t->getLODDimZ(0)); 826cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 82744bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 8285261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 8295261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 830d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams if (vecSize > 0) { 831d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams if (vecSize != e->getVectorSize()) { 832d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams sprintf(buf, "Vector size mismatch for ElementAt %i of %i", vecSize, e->getVectorSize()); 833cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 83444bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 835d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams } 836d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 837d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams if (dt != e->getType()) { 838d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams sprintf(buf, "Data type mismatch for ElementAt %i of %i", dt, e->getType()); 839cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines rsc->setError(RS_ERROR_FATAL_DEBUG, buf); 84044bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 841d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams } 8425261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 8435261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 8445261a5ea546ff358edd5aac7602fc4132434f481Jason Sams uint8_t *p = (uint8_t *)a->mHal.drvState.lod[0].mallocPtr; 8455261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const uint32_t eSize = e->getSizeBytes(); 8465261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const uint32_t stride = a->mHal.drvState.lod[0].stride; 8475261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return &p[(eSize * x) + (y * stride)]; 8485261a5ea546ff358edd5aac7602fc4132434f481Jason Sams} 8495261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 85031729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic const void * SC_GetElementAt1D(RS_TY_ALLOC a, uint32_t x) { 85131729ad313f009d430255bfac8ef644db0c9215bYong Chen return ElementAt1D(rsGetObjPtr(a), RS_TYPE_UNSIGNED_8, 0, x); 852d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams} 85331729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic const void * SC_GetElementAt2D(RS_TY_ALLOC a, uint32_t x, uint32_t y) { 85431729ad313f009d430255bfac8ef644db0c9215bYong Chen return ElementAt2D(rsGetObjPtr(a), RS_TYPE_UNSIGNED_8, 0, x, y); 855d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams} 85631729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic const void * SC_GetElementAt3D(RS_TY_ALLOC a, uint32_t x, uint32_t y, uint32_t z) { 85731729ad313f009d430255bfac8ef644db0c9215bYong Chen return ElementAt3D(rsGetObjPtr(a), RS_TYPE_UNSIGNED_8, 0, x, y, z); 858d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams} 859d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 86031729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic void SC_SetElementAt1D(RS_TY_ALLOC a, const void *ptr, uint32_t x) { 86131729ad313f009d430255bfac8ef644db0c9215bYong Chen const Type *t = rsGetObjPtr(a)->getType(); 862d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams const Element *e = t->getElement(); 86331729ad313f009d430255bfac8ef644db0c9215bYong Chen void *tmp = ElementAt1D(rsGetObjPtr(a), RS_TYPE_UNSIGNED_8, 0, x); 86444bef6fba6244292b751387f3d6c31cca96c28adChris Wailes if (tmp != nullptr) { 865d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams memcpy(tmp, ptr, e->getSizeBytes()); 866d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams } 867d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams} 86831729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic void SC_SetElementAt2D(RS_TY_ALLOC a, const void *ptr, uint32_t x, uint32_t y) { 86931729ad313f009d430255bfac8ef644db0c9215bYong Chen const Type *t = rsGetObjPtr(a)->getType(); 870d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams const Element *e = t->getElement(); 87131729ad313f009d430255bfac8ef644db0c9215bYong Chen void *tmp = ElementAt2D(rsGetObjPtr(a), RS_TYPE_UNSIGNED_8, 0, x, y); 87244bef6fba6244292b751387f3d6c31cca96c28adChris Wailes if (tmp != nullptr) { 873d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams memcpy(tmp, ptr, e->getSizeBytes()); 874d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams } 875d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams} 87631729ad313f009d430255bfac8ef644db0c9215bYong Chenstatic void SC_SetElementAt3D(RS_TY_ALLOC a, const void *ptr, uint32_t x, uint32_t y, uint32_t z) { 87731729ad313f009d430255bfac8ef644db0c9215bYong Chen const Type *t = rsGetObjPtr(a)->getType(); 878d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams const Element *e = t->getElement(); 87931729ad313f009d430255bfac8ef644db0c9215bYong Chen void *tmp = ElementAt3D(rsGetObjPtr(a), RS_TYPE_UNSIGNED_8, 0, x, y, z); 88044bef6fba6244292b751387f3d6c31cca96c28adChris Wailes if (tmp != nullptr) { 881d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams memcpy(tmp, ptr, e->getSizeBytes()); 882d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams } 883d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams} 884d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 8852544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarconst void *rsGetElementAt(::rs_allocation a, uint32_t x) { 88631729ad313f009d430255bfac8ef644db0c9215bYong Chen return SC_GetElementAt1D(RS_CAST(a), x); 887dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar} 888dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar 8892544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarconst void *rsGetElementAt(::rs_allocation a, uint32_t x, uint32_t y) { 89031729ad313f009d430255bfac8ef644db0c9215bYong Chen return SC_GetElementAt2D(RS_CAST(a), x, y); 891dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar} 892dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar 8932544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarconst void *rsGetElementAt(::rs_allocation a, uint32_t x, uint32_t y, uint32_t z) { 89431729ad313f009d430255bfac8ef644db0c9215bYong Chen return SC_GetElementAt3D(RS_CAST(a), x, y, z); 895dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar} 896dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar 8972544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsSetElementAt(::rs_allocation a, const void *ptr, uint32_t x) { 89831729ad313f009d430255bfac8ef644db0c9215bYong Chen SC_SetElementAt1D(RS_CAST(a), ptr, x); 899dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar} 900dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar 9012544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsSetElementAt(::rs_allocation a, const void *ptr, uint32_t x, uint32_t y) { 90231729ad313f009d430255bfac8ef644db0c9215bYong Chen SC_SetElementAt2D(RS_CAST(a), ptr, x, y); 903dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar} 904dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar 9052544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsSetElementAt(::rs_allocation a, const void *ptr, uint32_t x, uint32_t y, uint32_t z) { 90631729ad313f009d430255bfac8ef644db0c9215bYong Chen SC_SetElementAt3D(RS_CAST(a), ptr, x, y, z); 907dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar} 908dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar 909dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar 91031729ad313f009d430255bfac8ef644db0c9215bYong Chen#define ELEMENT_AT(T, DT, VS) \ 91131729ad313f009d430255bfac8ef644db0c9215bYong Chen static void SC_SetElementAt1_##T(RS_TY_ALLOC a, const T *val, uint32_t x) { \ 91231729ad313f009d430255bfac8ef644db0c9215bYong Chen void *r = ElementAt1D(rsGetObjPtr(a), DT, VS, x); \ 91344bef6fba6244292b751387f3d6c31cca96c28adChris Wailes if (r != nullptr) ((T *)r)[0] = *val; \ 9145261a5ea546ff358edd5aac7602fc4132434f481Jason Sams else ALOGE("Error from %s", __PRETTY_FUNCTION__); \ 9155261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } \ 91631729ad313f009d430255bfac8ef644db0c9215bYong Chen static void SC_SetElementAt2_##T(RS_TY_ALLOC a, const T * val, uint32_t x, uint32_t y) { \ 91731729ad313f009d430255bfac8ef644db0c9215bYong Chen void *r = ElementAt2D(rsGetObjPtr(a), DT, VS, x, y); \ 91844bef6fba6244292b751387f3d6c31cca96c28adChris Wailes if (r != nullptr) ((T *)r)[0] = *val; \ 9195261a5ea546ff358edd5aac7602fc4132434f481Jason Sams else ALOGE("Error from %s", __PRETTY_FUNCTION__); \ 9205261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } \ 92131729ad313f009d430255bfac8ef644db0c9215bYong Chen static void SC_SetElementAt3_##T(RS_TY_ALLOC a, const T * val, uint32_t x, uint32_t y, uint32_t z) { \ 92231729ad313f009d430255bfac8ef644db0c9215bYong Chen void *r = ElementAt3D(rsGetObjPtr(a), DT, VS, x, y, z); \ 92344bef6fba6244292b751387f3d6c31cca96c28adChris Wailes if (r != nullptr) ((T *)r)[0] = *val; \ 9245261a5ea546ff358edd5aac7602fc4132434f481Jason Sams else ALOGE("Error from %s", __PRETTY_FUNCTION__); \ 9255261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } \ 92631729ad313f009d430255bfac8ef644db0c9215bYong Chen static void SC_GetElementAt1_##T(RS_TY_ALLOC a, T *val, uint32_t x) { \ 92731729ad313f009d430255bfac8ef644db0c9215bYong Chen void *r = ElementAt1D(rsGetObjPtr(a), DT, VS, x); \ 92831729ad313f009d430255bfac8ef644db0c9215bYong Chen if (r != nullptr) *val = ((T *)r)[0]; \ 92931729ad313f009d430255bfac8ef644db0c9215bYong Chen else ALOGE("Error from %s", __PRETTY_FUNCTION__); \ 93031729ad313f009d430255bfac8ef644db0c9215bYong Chen } \ 93131729ad313f009d430255bfac8ef644db0c9215bYong Chen static void SC_GetElementAt2_##T(RS_TY_ALLOC a, T *val, uint32_t x, uint32_t y) { \ 93231729ad313f009d430255bfac8ef644db0c9215bYong Chen void *r = ElementAt2D(rsGetObjPtr(a), DT, VS, x, y); \ 93331729ad313f009d430255bfac8ef644db0c9215bYong Chen if (r != nullptr) *val = ((T *)r)[0]; \ 93431729ad313f009d430255bfac8ef644db0c9215bYong Chen else ALOGE("Error from %s", __PRETTY_FUNCTION__); \ 93531729ad313f009d430255bfac8ef644db0c9215bYong Chen } \ 93631729ad313f009d430255bfac8ef644db0c9215bYong Chen static void SC_GetElementAt3_##T(RS_TY_ALLOC a, T *val, uint32_t x, uint32_t y, uint32_t z) { \ 93731729ad313f009d430255bfac8ef644db0c9215bYong Chen void *r = ElementAt3D(rsGetObjPtr(a), DT, VS, x, y, z); \ 93844bef6fba6244292b751387f3d6c31cca96c28adChris Wailes if (r != nullptr) *val = ((T *)r)[0]; \ 93944bef6fba6244292b751387f3d6c31cca96c28adChris Wailes else ALOGE("Error from %s", __PRETTY_FUNCTION__); \ 9405261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } \ 941dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar void rsSetElementAt_##T(::rs_allocation a, const T *val, uint32_t x) { \ 94231729ad313f009d430255bfac8ef644db0c9215bYong Chen SC_SetElementAt1_##T(RS_CAST(a), val, x); \ 94331729ad313f009d430255bfac8ef644db0c9215bYong Chen } \ 9442544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar void rsSetElementAt_##T(::rs_allocation a, const T *val, uint32_t x, uint32_t y) { \ 94531729ad313f009d430255bfac8ef644db0c9215bYong Chen SC_SetElementAt2_##T(RS_CAST(a), val, x, y); \ 94631729ad313f009d430255bfac8ef644db0c9215bYong Chen } \ 947dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar void rsSetElementAt_##T(::rs_allocation a, const T *val, uint32_t x, uint32_t y, uint32_t z) { \ 94831729ad313f009d430255bfac8ef644db0c9215bYong Chen SC_SetElementAt3_##T(RS_CAST(a), val, x, y, z); \ 94931729ad313f009d430255bfac8ef644db0c9215bYong Chen } \ 95031729ad313f009d430255bfac8ef644db0c9215bYong Chen void rsGetElementAt_##T(::rs_allocation a, T *val, uint32_t x) { \ 95131729ad313f009d430255bfac8ef644db0c9215bYong Chen SC_GetElementAt1_##T(RS_CAST(a), val, x); \ 95231729ad313f009d430255bfac8ef644db0c9215bYong Chen } \ 9532544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar void rsGetElementAt_##T(::rs_allocation a, T *val, uint32_t x, uint32_t y) { \ 95431729ad313f009d430255bfac8ef644db0c9215bYong Chen SC_GetElementAt2_##T(RS_CAST(a), val, x, y); \ 95531729ad313f009d430255bfac8ef644db0c9215bYong Chen } \ 9562544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar void rsGetElementAt_##T(::rs_allocation a, T *val, uint32_t x, uint32_t y, uint32_t z) { \ 95731729ad313f009d430255bfac8ef644db0c9215bYong Chen SC_GetElementAt3_##T(RS_CAST(a), val, x, y, z); \ 95831729ad313f009d430255bfac8ef644db0c9215bYong Chen } \ 9595261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 9605261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(char, RS_TYPE_SIGNED_8, 1) 9615261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(char2, RS_TYPE_SIGNED_8, 2) 9625261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(char3, RS_TYPE_SIGNED_8, 3) 9635261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(char4, RS_TYPE_SIGNED_8, 4) 9645261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uchar, RS_TYPE_UNSIGNED_8, 1) 9655261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uchar2, RS_TYPE_UNSIGNED_8, 2) 9665261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uchar3, RS_TYPE_UNSIGNED_8, 3) 9675261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uchar4, RS_TYPE_UNSIGNED_8, 4) 9685261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(short, RS_TYPE_SIGNED_16, 1) 9695261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(short2, RS_TYPE_SIGNED_16, 2) 9705261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(short3, RS_TYPE_SIGNED_16, 3) 9715261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(short4, RS_TYPE_SIGNED_16, 4) 9725261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ushort, RS_TYPE_UNSIGNED_16, 1) 9735261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ushort2, RS_TYPE_UNSIGNED_16, 2) 9745261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ushort3, RS_TYPE_UNSIGNED_16, 3) 9755261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ushort4, RS_TYPE_UNSIGNED_16, 4) 9765261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(int, RS_TYPE_SIGNED_32, 1) 9775261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(int2, RS_TYPE_SIGNED_32, 2) 9785261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(int3, RS_TYPE_SIGNED_32, 3) 9795261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(int4, RS_TYPE_SIGNED_32, 4) 9805261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uint, RS_TYPE_UNSIGNED_32, 1) 9815261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uint2, RS_TYPE_UNSIGNED_32, 2) 9825261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uint3, RS_TYPE_UNSIGNED_32, 3) 9835261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uint4, RS_TYPE_UNSIGNED_32, 4) 9845261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(long, RS_TYPE_SIGNED_64, 1) 9855261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(long2, RS_TYPE_SIGNED_64, 2) 9865261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(long3, RS_TYPE_SIGNED_64, 3) 9875261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(long4, RS_TYPE_SIGNED_64, 4) 9885261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ulong, RS_TYPE_UNSIGNED_64, 1) 9895261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ulong2, RS_TYPE_UNSIGNED_64, 2) 9905261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ulong3, RS_TYPE_UNSIGNED_64, 3) 9915261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ulong4, RS_TYPE_UNSIGNED_64, 4) 9925261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(float, RS_TYPE_FLOAT_32, 1) 9935261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(float2, RS_TYPE_FLOAT_32, 2) 9945261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(float3, RS_TYPE_FLOAT_32, 3) 9955261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(float4, RS_TYPE_FLOAT_32, 4) 9965261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(double, RS_TYPE_FLOAT_64, 1) 9975261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(double2, RS_TYPE_FLOAT_64, 2) 9985261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(double3, RS_TYPE_FLOAT_64, 3) 9995261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(double4, RS_TYPE_FLOAT_64, 4) 10005261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 10015261a5ea546ff358edd5aac7602fc4132434f481Jason Sams#undef ELEMENT_AT 100287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 1003709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar#ifndef __LP64__ 1004709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar/* 1005709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar * We miss some symbols for rs{Get,Set}Element_long,ulong variants because 64 1006709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar * bit integer values are 'long' in RS-land but might be 'long long' in the 1007709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar * driver. Define native_long* and native_ulong* types to be vectors of 1008709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar * 'long' as seen by the driver and define overloaded versions of 1009709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar * rsSetElementAt_* and rsGetElementAt_*. This should get us the correct 1010709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar * mangled names in the driver. 1011709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar */ 1012709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar 1013709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainartypedef long native_long2 __attribute__((ext_vector_type(2))); 1014709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainartypedef long native_long3 __attribute__((ext_vector_type(3))); 1015709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainartypedef long native_long4 __attribute__((ext_vector_type(4))); 1016709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainartypedef unsigned long native_ulong2 __attribute__((ext_vector_type(2))); 1017709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainartypedef unsigned long native_ulong3 __attribute__((ext_vector_type(3))); 1018709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainartypedef unsigned long native_ulong4 __attribute__((ext_vector_type(4))); 1019709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar 1020709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar#define ELEMENT_AT_OVERLOADS(T, U) \ 1021709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar void rsSetElementAt_##T(::rs_allocation a, const U *val, uint32_t x) { \ 102231729ad313f009d430255bfac8ef644db0c9215bYong Chen SC_SetElementAt1_##T(RS_CAST(a), (T *) val, x); \ 1023709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar } \ 1024709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar void rsSetElementAt_##T(::rs_allocation a, const U *val, uint32_t x, uint32_t y) { \ 102531729ad313f009d430255bfac8ef644db0c9215bYong Chen SC_SetElementAt2_##T(RS_CAST(a), (T *) val, x, y); \ 1026709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar } \ 1027709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar void rsSetElementAt_##T(::rs_allocation a, const U *val, uint32_t x, uint32_t y, uint32_t z) { \ 102831729ad313f009d430255bfac8ef644db0c9215bYong Chen SC_SetElementAt3_##T(RS_CAST(a), (T *) val, x, y, z); \ 1029709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar } \ 1030709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar void rsGetElementAt_##T(::rs_allocation a, U *val, uint32_t x) { \ 103131729ad313f009d430255bfac8ef644db0c9215bYong Chen SC_GetElementAt1_##T(RS_CAST(a), (T *) val, x); \ 1032709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar } \ 1033709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar void rsGetElementAt_##T(::rs_allocation a, U *val, uint32_t x, uint32_t y) { \ 103431729ad313f009d430255bfac8ef644db0c9215bYong Chen SC_GetElementAt2_##T(RS_CAST(a), (T *) val, x, y); \ 1035709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar } \ 1036709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar void rsGetElementAt_##T(::rs_allocation a, U *val, uint32_t x, uint32_t y, uint32_t z) { \ 103731729ad313f009d430255bfac8ef644db0c9215bYong Chen SC_GetElementAt3_##T(RS_CAST(a), (T *) val, x, y, z); \ 1038709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar } \ 1039709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar 1040709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga NainarELEMENT_AT_OVERLOADS(long2, native_long2) 1041709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga NainarELEMENT_AT_OVERLOADS(long3, native_long3) 1042709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga NainarELEMENT_AT_OVERLOADS(long4, native_long4) 1043709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga NainarELEMENT_AT_OVERLOADS(ulong, unsigned long) 1044709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga NainarELEMENT_AT_OVERLOADS(ulong2, native_ulong2) 1045709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga NainarELEMENT_AT_OVERLOADS(ulong3, native_ulong3) 1046709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga NainarELEMENT_AT_OVERLOADS(ulong4, native_ulong4) 1047709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar 1048709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar// We also need variants of rs{Get,Set}ElementAt_long that take 'long long *' as 1049709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar// we might have this overloaded variant in old APKs. 1050709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga NainarELEMENT_AT_OVERLOADS(long, long long) 1051709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar 1052709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar#undef ELEMENT_AT_OVERLOADS 1053709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar#endif 1054709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar 1055709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar 105687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 105787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// Stub implementation 105887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 105987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 106087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// llvm name mangling ref 106187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// <builtin-type> ::= v # void 106287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= b # bool 106387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= c # char 106487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= a # signed char 106587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= h # unsigned char 106687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= s # short 106787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= t # unsigned short 106887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= i # int 106987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= j # unsigned int 107087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= l # long 107187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= m # unsigned long 107287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= x # long long, __int64 107387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= y # unsigned long long, __int64 107487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= f # float 107587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= d # double 107687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 1077709a0978ae141198018ca9769f8d96292a8928e6Jason Samsstatic RsdCpuReference::CpuSymbol gSyms[] = { 10785261a5ea546ff358edd5aac7602fc4132434f481Jason Sams // Debug runtime 1079d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z14rsGetElementAt13rs_allocationj", (void *)&SC_GetElementAt1D, true }, 1080d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z14rsGetElementAt13rs_allocationjj", (void *)&SC_GetElementAt2D, true }, 1081d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z14rsGetElementAt13rs_allocationjjj", (void *)&SC_GetElementAt3D, true }, 1082d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z14rsSetElementAt13rs_allocationPKvj", (void *)&SC_SetElementAt1D, true }, 1083d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z14rsSetElementAt13rs_allocationPKvjj", (void *)&SC_SetElementAt2D, true }, 1084d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z14rsSetElementAt13rs_allocationPKvjjj", (void *)&SC_SetElementAt3D, true }, 1085d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1086d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1087d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uchar13rs_allocationPhj", (void *)&SC_GetElementAt1_uchar, true }, 1088d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_uchar213rs_allocationPDv2_hj", (void *)&SC_GetElementAt1_uchar2, true }, 1089d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_uchar313rs_allocationPDv3_hj", (void *)&SC_GetElementAt1_uchar3, true }, 1090d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_uchar413rs_allocationPDv4_hj", (void *)&SC_GetElementAt1_uchar4, true }, 1091d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uchar13rs_allocationPhjj", (void *)&SC_GetElementAt2_uchar, true }, 1092d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_uchar213rs_allocationPDv2_hjj", (void *)&SC_GetElementAt2_uchar2, true }, 1093d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_uchar313rs_allocationPDv3_hjj", (void *)&SC_GetElementAt2_uchar3, true }, 1094d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_uchar413rs_allocationPDv4_hjj", (void *)&SC_GetElementAt2_uchar4, true }, 1095d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uchar13rs_allocationPhjjj", (void *)&SC_GetElementAt3_uchar, true }, 1096d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_uchar213rs_allocationPDv2_hjjj", (void *)&SC_GetElementAt3_uchar2, true }, 1097d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_uchar313rs_allocationPDv3_hjjj", (void *)&SC_GetElementAt3_uchar3, true }, 1098d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_uchar413rs_allocationPDv4_hjjj", (void *)&SC_GetElementAt3_uchar4, true }, 1099d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1100d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_char13rs_allocationPcj", (void *)&SC_GetElementAt1_char, true }, 1101d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_char213rs_allocationPDv2_cj", (void *)&SC_GetElementAt1_char2, true }, 1102d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_char313rs_allocationPDv3_cj", (void *)&SC_GetElementAt1_char3, true }, 1103d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_char413rs_allocationPDv4_cj", (void *)&SC_GetElementAt1_char4, true }, 1104d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_char13rs_allocationPcjj", (void *)&SC_GetElementAt2_char, true }, 1105d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_char213rs_allocationPDv2_cjj", (void *)&SC_GetElementAt2_char2, true }, 1106d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_char313rs_allocationPDv3_cjj", (void *)&SC_GetElementAt2_char3, true }, 1107d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_char413rs_allocationPDv4_cjj", (void *)&SC_GetElementAt2_char4, true }, 1108d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_char13rs_allocationPcjjj", (void *)&SC_GetElementAt3_char, true }, 1109d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_char213rs_allocationPDv2_cjjj", (void *)&SC_GetElementAt3_char2, true }, 1110d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_char313rs_allocationPDv3_cjjj", (void *)&SC_GetElementAt3_char3, true }, 1111d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_char413rs_allocationPDv4_cjjj", (void *)&SC_GetElementAt3_char4, true }, 1112d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1113d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ushort13rs_allocationPtj", (void *)&SC_GetElementAt1_ushort, true }, 1114d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_ushort213rs_allocationPDv2_tj", (void *)&SC_GetElementAt1_ushort2, true }, 1115d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_ushort313rs_allocationPDv3_tj", (void *)&SC_GetElementAt1_ushort3, true }, 1116d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_ushort413rs_allocationPDv4_tj", (void *)&SC_GetElementAt1_ushort4, true }, 1117d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ushort13rs_allocationPtjj", (void *)&SC_GetElementAt2_ushort, true }, 1118d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_ushort213rs_allocationPDv2_tjj", (void *)&SC_GetElementAt2_ushort2, true }, 1119d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_ushort313rs_allocationPDv3_tjj", (void *)&SC_GetElementAt2_ushort3, true }, 1120d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_ushort413rs_allocationPDv4_tjj", (void *)&SC_GetElementAt2_ushort4, true }, 1121d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ushort13rs_allocationPtjjj", (void *)&SC_GetElementAt3_ushort, true }, 1122d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_ushort213rs_allocationPDv2_tjjj", (void *)&SC_GetElementAt3_ushort2, true }, 1123d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_ushort313rs_allocationPDv3_tjjj", (void *)&SC_GetElementAt3_ushort3, true }, 1124d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_ushort413rs_allocationPDv4_tjjj", (void *)&SC_GetElementAt3_ushort4, true }, 1125d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1126d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_short13rs_allocationPsj", (void *)&SC_GetElementAt1_short, true }, 1127d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_short213rs_allocationPDv2_sj", (void *)&SC_GetElementAt1_short2, true }, 1128d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_short313rs_allocationPDv3_sj", (void *)&SC_GetElementAt1_short3, true }, 1129d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_short413rs_allocationPDv4_sj", (void *)&SC_GetElementAt1_short4, true }, 1130d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_short13rs_allocationPsjj", (void *)&SC_GetElementAt2_short, true }, 1131d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_short213rs_allocationPDv2_sjj", (void *)&SC_GetElementAt2_short2, true }, 1132d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_short313rs_allocationPDv3_sjj", (void *)&SC_GetElementAt2_short3, true }, 1133d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_short413rs_allocationPDv4_sjj", (void *)&SC_GetElementAt2_short4, true }, 1134d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_short13rs_allocationPsjjj", (void *)&SC_GetElementAt3_short, true }, 1135d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_short213rs_allocationPDv2_sjjj", (void *)&SC_GetElementAt3_short2, true }, 1136d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_short313rs_allocationPDv3_sjjj", (void *)&SC_GetElementAt3_short3, true }, 1137d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_short413rs_allocationPDv4_sjjj", (void *)&SC_GetElementAt3_short4, true }, 1138d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1139d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_uint13rs_allocationPjj", (void *)&SC_GetElementAt1_uint, true }, 1140d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uint213rs_allocationPDv2_jj", (void *)&SC_GetElementAt1_uint2, true }, 1141d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uint313rs_allocationPDv3_jj", (void *)&SC_GetElementAt1_uint3, true }, 1142d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uint413rs_allocationPDv4_jj", (void *)&SC_GetElementAt1_uint4, true }, 1143d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_uint13rs_allocationPjjj", (void *)&SC_GetElementAt2_uint, true }, 1144d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uint213rs_allocationPDv2_jjj", (void *)&SC_GetElementAt2_uint2, true }, 1145d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uint313rs_allocationPDv3_jjj", (void *)&SC_GetElementAt2_uint3, true }, 1146d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uint413rs_allocationPDv4_jjj", (void *)&SC_GetElementAt2_uint4, true }, 1147d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_uint13rs_allocationPjjjj", (void *)&SC_GetElementAt3_uint, true }, 1148d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uint213rs_allocationPDv2_jjjj", (void *)&SC_GetElementAt3_uint2, true }, 1149d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uint313rs_allocationPDv3_jjjj", (void *)&SC_GetElementAt3_uint3, true }, 1150d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_uint413rs_allocationPDv4_jjjj", (void *)&SC_GetElementAt3_uint4, true }, 1151d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1152d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z18rsGetElementAt_int13rs_allocationPij", (void *)&SC_GetElementAt1_int, true }, 1153d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_int213rs_allocationPDv2_ij", (void *)&SC_GetElementAt1_int2, true }, 1154d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_int313rs_allocationPDv3_ij", (void *)&SC_GetElementAt1_int3, true }, 1155d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_int413rs_allocationPDv4_ij", (void *)&SC_GetElementAt1_int4, true }, 1156d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z18rsGetElementAt_int13rs_allocationPijj", (void *)&SC_GetElementAt2_int, true }, 1157d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_int213rs_allocationPDv2_ijj", (void *)&SC_GetElementAt2_int2, true }, 1158d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_int313rs_allocationPDv3_ijj", (void *)&SC_GetElementAt2_int3, true }, 1159d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_int413rs_allocationPDv4_ijj", (void *)&SC_GetElementAt2_int4, true }, 1160d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z18rsGetElementAt_int13rs_allocationPijjj", (void *)&SC_GetElementAt3_int, true }, 1161d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_int213rs_allocationPDv2_ijjj", (void *)&SC_GetElementAt3_int2, true }, 1162d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_int313rs_allocationPDv3_ijjj", (void *)&SC_GetElementAt3_int3, true }, 1163d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_int413rs_allocationPDv4_ijjj", (void *)&SC_GetElementAt3_int4, true }, 1164d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1165d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_ulong13rs_allocationPmj", (void *)&SC_GetElementAt1_ulong, true }, 1166d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ulong213rs_allocationPDv2_mj", (void *)&SC_GetElementAt1_ulong2, true }, 1167d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ulong313rs_allocationPDv3_mj", (void *)&SC_GetElementAt1_ulong3, true }, 1168d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ulong413rs_allocationPDv4_mj", (void *)&SC_GetElementAt1_ulong4, true }, 1169d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_ulong13rs_allocationPmjj", (void *)&SC_GetElementAt2_ulong, true }, 1170d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ulong213rs_allocationPDv2_mjj", (void *)&SC_GetElementAt2_ulong2, true }, 1171d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ulong313rs_allocationPDv3_mjj", (void *)&SC_GetElementAt2_ulong3, true }, 1172d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ulong413rs_allocationPDv4_mjj", (void *)&SC_GetElementAt2_ulong4, true }, 1173d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_ulong13rs_allocationPmjjj", (void *)&SC_GetElementAt3_ulong, true }, 1174d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ulong213rs_allocationPDv2_mjjj", (void *)&SC_GetElementAt3_ulong2, true }, 1175d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ulong313rs_allocationPDv3_mjjj", (void *)&SC_GetElementAt3_ulong3, true }, 1176d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_ulong413rs_allocationPDv4_mjjj", (void *)&SC_GetElementAt3_ulong4, true }, 1177d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1178d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_long13rs_allocationPlj", (void *)&SC_GetElementAt1_long, true }, 1179d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_long213rs_allocationPDv2_lj", (void *)&SC_GetElementAt1_long2, true }, 1180d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_long313rs_allocationPDv3_lj", (void *)&SC_GetElementAt1_long3, true }, 1181d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_long413rs_allocationPDv4_lj", (void *)&SC_GetElementAt1_long4, true }, 1182d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_long13rs_allocationPljj", (void *)&SC_GetElementAt2_long, true }, 1183d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_long213rs_allocationPDv2_ljj", (void *)&SC_GetElementAt2_long2, true }, 1184d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_long313rs_allocationPDv3_ljj", (void *)&SC_GetElementAt2_long3, true }, 1185d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_long413rs_allocationPDv4_ljj", (void *)&SC_GetElementAt2_long4, true }, 1186d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsGetElementAt_long13rs_allocationPljjj", (void *)&SC_GetElementAt3_long, true }, 1187d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_long213rs_allocationPDv2_ljjj", (void *)&SC_GetElementAt3_long2, true }, 1188d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_long313rs_allocationPDv3_ljjj", (void *)&SC_GetElementAt3_long3, true }, 1189d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_long413rs_allocationPDv4_ljjj", (void *)&SC_GetElementAt3_long4, true }, 1190d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1191d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_float13rs_allocationPfj", (void *)&SC_GetElementAt1_float, true }, 1192d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_float213rs_allocationPDv2_fj", (void *)&SC_GetElementAt1_float2, true }, 1193d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_float313rs_allocationPDv3_fj", (void *)&SC_GetElementAt1_float3, true }, 1194d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_float413rs_allocationPDv4_fj", (void *)&SC_GetElementAt1_float4, true }, 1195d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_float13rs_allocationPfjj", (void *)&SC_GetElementAt2_float, true }, 1196d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_float213rs_allocationPDv2_fjj", (void *)&SC_GetElementAt2_float2, true }, 1197d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_float313rs_allocationPDv3_fjj", (void *)&SC_GetElementAt2_float3, true }, 1198d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_float413rs_allocationPDv4_fjj", (void *)&SC_GetElementAt2_float4, true }, 1199d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsGetElementAt_float13rs_allocationPfjjj", (void *)&SC_GetElementAt3_float, true }, 1200d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_float213rs_allocationPDv2_fjjj", (void *)&SC_GetElementAt3_float2, true }, 1201d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_float313rs_allocationPDv3_fjjj", (void *)&SC_GetElementAt3_float3, true }, 1202d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_float413rs_allocationPDv4_fjjj", (void *)&SC_GetElementAt3_float4, true }, 1203d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1204d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_double13rs_allocationPdj", (void *)&SC_GetElementAt1_double, true }, 1205d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_double213rs_allocationPDv2_dj", (void *)&SC_GetElementAt1_double2, true }, 1206d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_double313rs_allocationPDv3_dj", (void *)&SC_GetElementAt1_double3, true }, 1207d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_double413rs_allocationPDv4_dj", (void *)&SC_GetElementAt1_double4, true }, 1208d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_double13rs_allocationPdjj", (void *)&SC_GetElementAt2_double, true }, 1209d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_double213rs_allocationPDv2_djj", (void *)&SC_GetElementAt2_double2, true }, 1210d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_double313rs_allocationPDv3_djj", (void *)&SC_GetElementAt2_double3, true }, 1211d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_double413rs_allocationPDv4_djj", (void *)&SC_GetElementAt2_double4, true }, 1212d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsGetElementAt_double13rs_allocationPdjjj", (void *)&SC_GetElementAt3_double, true }, 1213d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_double213rs_allocationPDv2_djjj", (void *)&SC_GetElementAt3_double2, true }, 1214d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_double313rs_allocationPDv3_djjj", (void *)&SC_GetElementAt3_double3, true }, 1215d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsGetElementAt_double413rs_allocationPDv4_djjj", (void *)&SC_GetElementAt3_double4, true }, 1216d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1217d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1218d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1219d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uchar13rs_allocationPKhj", (void *)&SC_SetElementAt1_uchar, true }, 1220d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_uchar213rs_allocationPKDv2_hj", (void *)&SC_SetElementAt1_uchar2, true }, 1221d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_uchar313rs_allocationPKDv3_hj", (void *)&SC_SetElementAt1_uchar3, true }, 1222d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_uchar413rs_allocationPKDv4_hj", (void *)&SC_SetElementAt1_uchar4, true }, 1223d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uchar13rs_allocationPKhjj", (void *)&SC_SetElementAt2_uchar, true }, 1224d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_uchar213rs_allocationPKDv2_hjj", (void *)&SC_SetElementAt2_uchar2, true }, 1225d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_uchar313rs_allocationPKDv3_hjj", (void *)&SC_SetElementAt2_uchar3, true }, 1226d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_uchar413rs_allocationPKDv4_hjj", (void *)&SC_SetElementAt2_uchar4, true }, 1227d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uchar13rs_allocationPKhjjj", (void *)&SC_SetElementAt3_uchar, true }, 1228d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_uchar213rs_allocationPKDv2_hjjj", (void *)&SC_SetElementAt3_uchar2, true }, 1229d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_uchar313rs_allocationPKDv3_hjjj", (void *)&SC_SetElementAt3_uchar3, true }, 1230d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_uchar413rs_allocationPKDv4_hjjj", (void *)&SC_SetElementAt3_uchar4, true }, 1231d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1232d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_char13rs_allocationPKcj", (void *)&SC_SetElementAt1_char, true }, 1233d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_char213rs_allocationPKDv2_cj", (void *)&SC_SetElementAt1_char2, true }, 1234d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_char313rs_allocationPKDv3_cj", (void *)&SC_SetElementAt1_char3, true }, 1235d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_char413rs_allocationPKDv4_cj", (void *)&SC_SetElementAt1_char4, true }, 1236d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_char13rs_allocationPKcjj", (void *)&SC_SetElementAt2_char, true }, 1237d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_char213rs_allocationPKDv2_cjj", (void *)&SC_SetElementAt2_char2, true }, 1238d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_char313rs_allocationPKDv3_cjj", (void *)&SC_SetElementAt2_char3, true }, 1239d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_char413rs_allocationPKDv4_cjj", (void *)&SC_SetElementAt2_char4, true }, 1240d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_char13rs_allocationPKcjjj", (void *)&SC_SetElementAt3_char, true }, 1241d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_char213rs_allocationPKDv2_cjjj", (void *)&SC_SetElementAt3_char2, true }, 1242d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_char313rs_allocationPKDv3_cjjj", (void *)&SC_SetElementAt3_char3, true }, 1243d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_char413rs_allocationPKDv4_cjjj", (void *)&SC_SetElementAt3_char4, true }, 1244d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 124540db7a2a344bf56c82c62f481a57f9ff59f93c91Stephen Hines { "_Z21rsSetElementAt_ushort13rs_allocationPKtj", (void *)&SC_SetElementAt1_ushort, true }, 1246d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_ushort213rs_allocationPKDv2_tj", (void *)&SC_SetElementAt1_ushort2, true }, 1247d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_ushort313rs_allocationPKDv3_tj", (void *)&SC_SetElementAt1_ushort3, true }, 1248d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_ushort413rs_allocationPKDv4_tj", (void *)&SC_SetElementAt1_ushort4, true }, 1249d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ushort13rs_allocationPKtjj", (void *)&SC_SetElementAt2_ushort, true }, 1250d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_ushort213rs_allocationPKDv2_tjj", (void *)&SC_SetElementAt2_ushort2, true }, 1251d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_ushort313rs_allocationPKDv3_tjj", (void *)&SC_SetElementAt2_ushort3, true }, 1252d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_ushort413rs_allocationPKDv4_tjj", (void *)&SC_SetElementAt2_ushort4, true }, 1253d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ushort13rs_allocationPKtjjj", (void *)&SC_SetElementAt3_ushort, true }, 1254d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_ushort213rs_allocationPKDv2_tjjj", (void *)&SC_SetElementAt3_ushort2, true }, 1255d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_ushort313rs_allocationPKDv3_tjjj", (void *)&SC_SetElementAt3_ushort3, true }, 1256d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_ushort413rs_allocationPKDv4_tjjj", (void *)&SC_SetElementAt3_ushort4, true }, 1257d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1258d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_short13rs_allocationPKsj", (void *)&SC_SetElementAt1_short, true }, 1259d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_short213rs_allocationPKDv2_sj", (void *)&SC_SetElementAt1_short2, true }, 1260d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_short313rs_allocationPKDv3_sj", (void *)&SC_SetElementAt1_short3, true }, 1261d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_short413rs_allocationPKDv4_sj", (void *)&SC_SetElementAt1_short4, true }, 1262d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_short13rs_allocationPKsjj", (void *)&SC_SetElementAt2_short, true }, 1263d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_short213rs_allocationPKDv2_sjj", (void *)&SC_SetElementAt2_short2, true }, 1264d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_short313rs_allocationPKDv3_sjj", (void *)&SC_SetElementAt2_short3, true }, 1265d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_short413rs_allocationPKDv4_sjj", (void *)&SC_SetElementAt2_short4, true }, 1266d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_short13rs_allocationPKsjjj", (void *)&SC_SetElementAt3_short, true }, 1267d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_short213rs_allocationPKDv2_sjjj", (void *)&SC_SetElementAt3_short2, true }, 1268d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_short313rs_allocationPKDv3_sjjj", (void *)&SC_SetElementAt3_short3, true }, 1269d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_short413rs_allocationPKDv4_sjjj", (void *)&SC_SetElementAt3_short4, true }, 1270d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1271d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_uint13rs_allocationPKjj", (void *)&SC_SetElementAt1_uint, true }, 1272d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uint213rs_allocationPKDv2_jj", (void *)&SC_SetElementAt1_uint2, true }, 1273d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uint313rs_allocationPKDv3_jj", (void *)&SC_SetElementAt1_uint3, true }, 1274d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uint413rs_allocationPKDv4_jj", (void *)&SC_SetElementAt1_uint4, true }, 1275d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_uint13rs_allocationPKjjj", (void *)&SC_SetElementAt2_uint, true }, 1276d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uint213rs_allocationPKDv2_jjj", (void *)&SC_SetElementAt2_uint2, true }, 1277d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uint313rs_allocationPKDv3_jjj", (void *)&SC_SetElementAt2_uint3, true }, 1278d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uint413rs_allocationPKDv4_jjj", (void *)&SC_SetElementAt2_uint4, true }, 1279d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_uint13rs_allocationPKjjjj", (void *)&SC_SetElementAt3_uint, true }, 1280d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uint213rs_allocationPKDv2_jjjj", (void *)&SC_SetElementAt3_uint2, true }, 1281d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uint313rs_allocationPKDv3_jjjj", (void *)&SC_SetElementAt3_uint3, true }, 1282d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_uint413rs_allocationPKDv4_jjjj", (void *)&SC_SetElementAt3_uint4, true }, 1283d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1284cca3d6ca444bef3b6d75431ec19bd07bfe40a733Stephen Hines { "_Z18rsSetElementAt_int13rs_allocationPKij", (void *)&SC_SetElementAt1_int, true }, 1285d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_int213rs_allocationPKDv2_ij", (void *)&SC_SetElementAt1_int2, true }, 1286d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_int313rs_allocationPKDv3_ij", (void *)&SC_SetElementAt1_int3, true }, 1287d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_int413rs_allocationPKDv4_ij", (void *)&SC_SetElementAt1_int4, true }, 1288d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z18rsSetElementAt_int13rs_allocationPKijj", (void *)&SC_SetElementAt2_int, true }, 1289d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_int213rs_allocationPKDv2_ijj", (void *)&SC_SetElementAt2_int2, true }, 1290d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_int313rs_allocationPKDv3_ijj", (void *)&SC_SetElementAt2_int3, true }, 1291d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_int413rs_allocationPKDv4_ijj", (void *)&SC_SetElementAt2_int4, true }, 1292d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z18rsSetElementAt_int13rs_allocationPKijjj", (void *)&SC_SetElementAt3_int, true }, 1293d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_int213rs_allocationPKDv2_ijjj", (void *)&SC_SetElementAt3_int2, true }, 1294d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_int313rs_allocationPKDv3_ijjj", (void *)&SC_SetElementAt3_int3, true }, 1295d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_int413rs_allocationPKDv4_ijjj", (void *)&SC_SetElementAt3_int4, true }, 1296d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1297cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z20rsSetElementAt_ulong13rs_allocationPKmj", (void *)&SC_SetElementAt1_ulong, true }, 1298d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ulong213rs_allocationPKDv2_mj", (void *)&SC_SetElementAt1_ulong2, true }, 1299d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ulong313rs_allocationPKDv3_mj", (void *)&SC_SetElementAt1_ulong3, true }, 1300d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ulong413rs_allocationPKDv4_mj", (void *)&SC_SetElementAt1_ulong4, true }, 1301d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_ulong13rs_allocationPKmjj", (void *)&SC_SetElementAt2_ulong, true }, 1302d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ulong213rs_allocationPKDv2_mjj", (void *)&SC_SetElementAt2_ulong2, true }, 1303d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ulong313rs_allocationPKDv3_mjj", (void *)&SC_SetElementAt2_ulong3, true }, 1304d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ulong413rs_allocationPKDv4_mjj", (void *)&SC_SetElementAt2_ulong4, true }, 1305d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_ulong13rs_allocationPKmjjj", (void *)&SC_SetElementAt3_ulong, true }, 1306d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ulong213rs_allocationPKDv2_mjjj", (void *)&SC_SetElementAt3_ulong2, true }, 1307d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ulong313rs_allocationPKDv3_mjjj", (void *)&SC_SetElementAt3_ulong3, true }, 1308d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_ulong413rs_allocationPKDv4_mjjj", (void *)&SC_SetElementAt3_ulong4, true }, 1309d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1310cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray // Pre-21 compatibility path 1311cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z20rsSetElementAt_ulong13rs_allocationPKyj", (void *)&SC_SetElementAt1_ulong, true }, 1312cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z21rsSetElementAt_ulong213rs_allocationPKDv2_yj", (void *)&SC_SetElementAt1_ulong2, true }, 1313cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z21rsSetElementAt_ulong313rs_allocationPKDv3_yj", (void *)&SC_SetElementAt1_ulong3, true }, 1314cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z21rsSetElementAt_ulong413rs_allocationPKDv4_yj", (void *)&SC_SetElementAt1_ulong4, true }, 1315cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z20rsSetElementAt_ulong13rs_allocationPKyjj", (void *)&SC_SetElementAt2_ulong, true }, 1316cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z21rsSetElementAt_ulong213rs_allocationPKDv2_yjj", (void *)&SC_SetElementAt2_ulong2, true }, 1317cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z21rsSetElementAt_ulong313rs_allocationPKDv3_yjj", (void *)&SC_SetElementAt2_ulong3, true }, 1318cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z21rsSetElementAt_ulong413rs_allocationPKDv4_yjj", (void *)&SC_SetElementAt2_ulong4, true }, 1319cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z20rsSetElementAt_ulong13rs_allocationPKyjjj", (void *)&SC_SetElementAt3_ulong, true }, 1320cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z21rsSetElementAt_ulong213rs_allocationPKDv2_yjjj", (void *)&SC_SetElementAt3_ulong2, true }, 1321cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z21rsSetElementAt_ulong313rs_allocationPKDv3_yjjj", (void *)&SC_SetElementAt3_ulong3, true }, 1322cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z21rsSetElementAt_ulong413rs_allocationPKDv4_yjjj", (void *)&SC_SetElementAt3_ulong4, true }, 1323cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray 1324d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_long13rs_allocationPKlj", (void *)&SC_SetElementAt1_long, true }, 1325d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_long213rs_allocationPKDv2_lj", (void *)&SC_SetElementAt1_long2, true }, 1326d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_long313rs_allocationPKDv3_lj", (void *)&SC_SetElementAt1_long3, true }, 1327d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_long413rs_allocationPKDv4_lj", (void *)&SC_SetElementAt1_long4, true }, 1328d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_long13rs_allocationPKljj", (void *)&SC_SetElementAt2_long, true }, 1329d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_long213rs_allocationPKDv2_ljj", (void *)&SC_SetElementAt2_long2, true }, 1330d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_long313rs_allocationPKDv3_ljj", (void *)&SC_SetElementAt2_long3, true }, 1331d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_long413rs_allocationPKDv4_ljj", (void *)&SC_SetElementAt2_long4, true }, 1332d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z19rsSetElementAt_long13rs_allocationPKljjj", (void *)&SC_SetElementAt3_long, true }, 1333d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_long213rs_allocationPKDv2_ljjj", (void *)&SC_SetElementAt3_long2, true }, 1334d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_long313rs_allocationPKDv3_ljjj", (void *)&SC_SetElementAt3_long3, true }, 1335d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_long413rs_allocationPKDv4_ljjj", (void *)&SC_SetElementAt3_long4, true }, 1336d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 1337cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray // Pre-21 compatibility path 1338cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z19rsSetElementAt_long13rs_allocationPKxj", (void *)&SC_SetElementAt1_long, true }, 1339cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z20rsSetElementAt_long213rs_allocationPKDv2_xj", (void *)&SC_SetElementAt1_long2, true }, 1340cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z20rsSetElementAt_long313rs_allocationPKDv3_xj", (void *)&SC_SetElementAt1_long3, true }, 1341cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z20rsSetElementAt_long413rs_allocationPKDv4_xj", (void *)&SC_SetElementAt1_long4, true }, 1342cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z19rsSetElementAt_long13rs_allocationPKxjj", (void *)&SC_SetElementAt2_long, true }, 1343cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z20rsSetElementAt_long213rs_allocationPKDv2_xjj", (void *)&SC_SetElementAt2_long2, true }, 1344cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z20rsSetElementAt_long313rs_allocationPKDv3_xjj", (void *)&SC_SetElementAt2_long3, true }, 1345cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z20rsSetElementAt_long413rs_allocationPKDv4_xjj", (void *)&SC_SetElementAt2_long4, true }, 1346cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z19rsSetElementAt_long13rs_allocationPKxjjj", (void *)&SC_SetElementAt3_long, true }, 1347cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z20rsSetElementAt_long213rs_allocationPKDv2_xjjj", (void *)&SC_SetElementAt3_long2, true }, 1348cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z20rsSetElementAt_long313rs_allocationPKDv3_xjjj", (void *)&SC_SetElementAt3_long3, true }, 1349cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray { "_Z20rsSetElementAt_long413rs_allocationPKDv4_xjjj", (void *)&SC_SetElementAt3_long4, true }, 1350cbdb6480528fc374144df1ae9c604c9100d33268Tim Murray 135140db7a2a344bf56c82c62f481a57f9ff59f93c91Stephen Hines { "_Z20rsSetElementAt_float13rs_allocationPKfj", (void *)&SC_SetElementAt1_float, true }, 1352d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_float213rs_allocationPKDv2_fj", (void *)&SC_SetElementAt1_float2, true }, 1353d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_float313rs_allocationPKDv3_fj", (void *)&SC_SetElementAt1_float3, true }, 1354d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_float413rs_allocationPKDv4_fj", (void *)&SC_SetElementAt1_float4, true }, 1355d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_float13rs_allocationPKfjj", (void *)&SC_SetElementAt2_float, true }, 1356d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_float213rs_allocationPKDv2_fjj", (void *)&SC_SetElementAt2_float2, true }, 1357d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_float313rs_allocationPKDv3_fjj", (void *)&SC_SetElementAt2_float3, true }, 1358d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_float413rs_allocationPKDv4_fjj", (void *)&SC_SetElementAt2_float4, true }, 1359d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z20rsSetElementAt_float13rs_allocationPKfjjj", (void *)&SC_SetElementAt3_float, true }, 1360d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_float213rs_allocationPKDv2_fjjj", (void *)&SC_SetElementAt3_float2, true }, 1361d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_float313rs_allocationPKDv3_fjjj", (void *)&SC_SetElementAt3_float3, true }, 1362d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_float413rs_allocationPKDv4_fjjj", (void *)&SC_SetElementAt3_float4, true }, 1363d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams 136440db7a2a344bf56c82c62f481a57f9ff59f93c91Stephen Hines { "_Z21rsSetElementAt_double13rs_allocationPKdj", (void *)&SC_SetElementAt1_double, true }, 1365d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_double213rs_allocationPKDv2_dj", (void *)&SC_SetElementAt1_double2, true }, 1366d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_double313rs_allocationPKDv3_dj", (void *)&SC_SetElementAt1_double3, true }, 1367d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_double413rs_allocationPKDv4_dj", (void *)&SC_SetElementAt1_double4, true }, 1368d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_double13rs_allocationPKdjj", (void *)&SC_SetElementAt2_double, true }, 1369d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_double213rs_allocationPKDv2_djj", (void *)&SC_SetElementAt2_double2, true }, 1370d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_double313rs_allocationPKDv3_djj", (void *)&SC_SetElementAt2_double3, true }, 1371d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_double413rs_allocationPKDv4_djj", (void *)&SC_SetElementAt2_double4, true }, 1372d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z21rsSetElementAt_double13rs_allocationPKdjjj", (void *)&SC_SetElementAt3_double, true }, 1373d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_double213rs_allocationPKDv2_djjj", (void *)&SC_SetElementAt3_double2, true }, 1374d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_double313rs_allocationPKDv3_djjj", (void *)&SC_SetElementAt3_double3, true }, 1375d09b9d667438c82e00c83cd21f693f32e3cf9f4bJason Sams { "_Z22rsSetElementAt_double413rs_allocationPKDv4_djjj", (void *)&SC_SetElementAt3_double4, true }, 13765261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 13775261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 137887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams // Refcounting 1379444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen#ifndef __LP64__ 138087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP10rs_elementS_", (void *)&SC_SetObject, true }, 138187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject10rs_element", (void *)&SC_IsObject, true }, 138287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 138387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP7rs_typeS_", (void *)&SC_SetObject, true }, 138487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject7rs_type", (void *)&SC_IsObject, true }, 138587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 138687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP13rs_allocationS_", (void *)&SC_SetObject, true }, 138787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject13rs_allocation", (void *)&SC_IsObject, true }, 138887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 138987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP10rs_samplerS_", (void *)&SC_SetObject, true }, 139087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject10rs_sampler", (void *)&SC_IsObject, true }, 139187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 139287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP9rs_scriptS_", (void *)&SC_SetObject, true }, 139387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject9rs_script", (void *)&SC_IsObject, true }, 1394444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen#else 1395444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen { "_Z11rsSetObjectP10rs_elementS_", (void *)&SC_SetObject_ByRef, true }, 1396444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen { "_Z10rsIsObject10rs_element", (void *)&SC_IsObject_ByRef, true }, 1397444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen 1398444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen { "_Z11rsSetObjectP7rs_typeS_", (void *)&SC_SetObject_ByRef, true }, 1399444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen { "_Z10rsIsObject7rs_type", (void *)&SC_IsObject_ByRef, true }, 1400444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen 1401444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen { "_Z11rsSetObjectP13rs_allocationS_", (void *)&SC_SetObject_ByRef, true }, 1402444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen { "_Z10rsIsObject13rs_allocation", (void *)&SC_IsObject_ByRef, true }, 1403444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen 1404444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen { "_Z11rsSetObjectP10rs_samplerS_", (void *)&SC_SetObject_ByRef, true }, 1405444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen { "_Z10rsIsObject10rs_sampler", (void *)&SC_IsObject_ByRef, true }, 1406444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen 1407444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen { "_Z11rsSetObjectP9rs_scriptS_", (void *)&SC_SetObject_ByRef, true }, 1408444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen { "_Z10rsIsObject9rs_script", (void *)&SC_IsObject_ByRef, true }, 1409444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen#endif 1410444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen { "_Z13rsClearObjectP10rs_element", (void *)&SC_ClearObject, true }, 1411444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen { "_Z13rsClearObjectP7rs_type", (void *)&SC_ClearObject, true }, 1412444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen { "_Z13rsClearObjectP13rs_allocation", (void *)&SC_ClearObject, true }, 1413444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen { "_Z13rsClearObjectP10rs_sampler", (void *)&SC_ClearObject, true }, 1414444bd208b4f129bd8e4c0cce4cf6d709c8900891Yong Chen { "_Z13rsClearObjectP9rs_script", (void *)&SC_ClearObject, true }, 141587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 14169e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams { "_Z11rsSetObjectP7rs_pathS_", (void *)&SC_SetObject, true }, 14179e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams { "_Z13rsClearObjectP7rs_path", (void *)&SC_ClearObject, true }, 14189e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams { "_Z10rsIsObject7rs_path", (void *)&SC_IsObject, true }, 14199e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams 142087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP7rs_meshS_", (void *)&SC_SetObject, true }, 142187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP7rs_mesh", (void *)&SC_ClearObject, true }, 142287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject7rs_mesh", (void *)&SC_IsObject, true }, 142387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 142487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP19rs_program_fragmentS_", (void *)&SC_SetObject, true }, 142587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP19rs_program_fragment", (void *)&SC_ClearObject, true }, 142687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject19rs_program_fragment", (void *)&SC_IsObject, true }, 142787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 142887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP17rs_program_vertexS_", (void *)&SC_SetObject, true }, 142987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP17rs_program_vertex", (void *)&SC_ClearObject, true }, 143087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject17rs_program_vertex", (void *)&SC_IsObject, true }, 143187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 143287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP17rs_program_rasterS_", (void *)&SC_SetObject, true }, 143387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP17rs_program_raster", (void *)&SC_ClearObject, true }, 143487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject17rs_program_raster", (void *)&SC_IsObject, true }, 143587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 143687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP16rs_program_storeS_", (void *)&SC_SetObject, true }, 143787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP16rs_program_store", (void *)&SC_ClearObject, true }, 143887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject16rs_program_store", (void *)&SC_IsObject, true }, 143987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 144087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP7rs_fontS_", (void *)&SC_SetObject, true }, 144187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP7rs_font", (void *)&SC_ClearObject, true }, 144287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject7rs_font", (void *)&SC_IsObject, true }, 144387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 144487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams // Allocation ops 144587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z21rsAllocationMarkDirty13rs_allocation", (void *)&SC_AllocationSyncAll, true }, 144687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z20rsgAllocationSyncAll13rs_allocation", (void *)&SC_AllocationSyncAll, false }, 144787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z20rsgAllocationSyncAll13rs_allocationj", (void *)&SC_AllocationSyncAll2, false }, 144874a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk { "_Z20rsgAllocationSyncAll13rs_allocation24rs_allocation_usage_type", (void *)&SC_AllocationSyncAll2, false }, 14490b575de8ed0b628d84d256f5846500b0385979bdTim Murray#ifndef RS_COMPATIBILITY_LIB 145047211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray { "_Z15rsGetAllocationPKv", (void *)&SC_GetAllocation, true }, 1451b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams { "_Z18rsAllocationIoSend13rs_allocation", (void *)&SC_AllocationIoSend, false }, 1452b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams { "_Z21rsAllocationIoReceive13rs_allocation", (void *)&SC_AllocationIoReceive, false }, 14530b575de8ed0b628d84d256f5846500b0385979bdTim Murray#endif 145474a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk { "_Z23rsAllocationCopy1DRange13rs_allocationjjjS_jj", (void *)&SC_AllocationCopy1DRange, false }, 145574a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk { "_Z23rsAllocationCopy2DRange13rs_allocationjjj26rs_allocation_cubemap_facejjS_jjjS0_", (void *)&SC_AllocationCopy2DRange, false }, 145687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 145787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams // Messaging 145887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 145987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsSendToClienti", (void *)&SC_ToClient, false }, 146087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsSendToClientiPKvj", (void *)&SC_ToClient2, false }, 146187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z22rsSendToClientBlockingi", (void *)&SC_ToClientBlocking, false }, 146287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z22rsSendToClientBlockingiPKvj", (void *)&SC_ToClientBlocking2, false }, 14630b575de8ed0b628d84d256f5846500b0385979bdTim Murray#ifndef RS_COMPATIBILITY_LIB 146487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z22rsgBindProgramFragment19rs_program_fragment", (void *)&SC_BindProgramFragment, false }, 146587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z19rsgBindProgramStore16rs_program_store", (void *)&SC_BindProgramStore, false }, 146687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z20rsgBindProgramVertex17rs_program_vertex", (void *)&SC_BindProgramVertex, false }, 146787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z20rsgBindProgramRaster17rs_program_raster", (void *)&SC_BindProgramRaster, false }, 146887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsgBindSampler19rs_program_fragmentj10rs_sampler", (void *)&SC_BindSampler, false }, 146987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsgBindTexture19rs_program_fragmentj13rs_allocation", (void *)&SC_BindTexture, false }, 1470a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchouk { "_Z15rsgBindConstant19rs_program_fragmentj13rs_allocation", (void *)&SC_BindFragmentConstant, false }, 1471a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchouk { "_Z15rsgBindConstant17rs_program_vertexj13rs_allocation", (void *)&SC_BindVertexConstant, false }, 147287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 147387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z36rsgProgramVertexLoadProjectionMatrixPK12rs_matrix4x4", (void *)&SC_VpLoadProjectionMatrix, false }, 147487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z31rsgProgramVertexLoadModelMatrixPK12rs_matrix4x4", (void *)&SC_VpLoadModelMatrix, false }, 147587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z33rsgProgramVertexLoadTextureMatrixPK12rs_matrix4x4", (void *)&SC_VpLoadTextureMatrix, false }, 147687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 147787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z35rsgProgramVertexGetProjectionMatrixP12rs_matrix4x4", (void *)&SC_VpGetProjectionMatrix, false }, 147887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 147987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z31rsgProgramFragmentConstantColor19rs_program_fragmentffff", (void *)&SC_PfConstantColor, false }, 148087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 148187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgGetWidthv", (void *)&SC_GetWidth, false }, 148287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z12rsgGetHeightv", (void *)&SC_GetHeight, false }, 148387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 148487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 148587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawRectfffff", (void *)&SC_DrawRect, false }, 148687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawQuadffffffffffff", (void *)&SC_DrawQuad, false }, 148787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z20rsgDrawQuadTexCoordsffffffffffffffffffff", (void *)&SC_DrawQuadTexCoords, false }, 148887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z24rsgDrawSpriteScreenspacefffff", (void *)&SC_DrawSpriteScreenspace, false }, 148987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 149087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawMesh7rs_mesh", (void *)&SC_DrawMesh, false }, 149187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawMesh7rs_meshj", (void *)&SC_DrawMeshPrimitive, false }, 149287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawMesh7rs_meshjjj", (void *)&SC_DrawMeshPrimitiveRange, false }, 149387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z25rsgMeshComputeBoundingBox7rs_meshPfS0_S0_S0_S0_S0_", (void *)&SC_MeshComputeBoundingBox, false }, 149487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 14959e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams { "_Z11rsgDrawPath7rs_path", (void *)&SC_DrawPath, false }, 14969e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams 149787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsgClearColorffff", (void *)&SC_ClearColor, false }, 149887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsgClearDepthf", (void *)&SC_ClearDepth, false }, 149987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 150087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawTextPKcii", (void *)&SC_DrawText, false }, 150187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawText13rs_allocationii", (void *)&SC_DrawTextAlloc, false }, 150287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsgMeasureTextPKcPiS1_S1_S1_", (void *)&SC_MeasureText, false }, 150387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsgMeasureText13rs_allocationPiS0_S0_S0_", (void *)&SC_MeasureTextAlloc, false }, 150487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 150587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgBindFont7rs_font", (void *)&SC_BindFont, false }, 150687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z12rsgFontColorffff", (void *)&SC_FontColor, false }, 150787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 150887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z18rsgBindColorTarget13rs_allocationj", (void *)&SC_BindFrameBufferObjectColorTarget, false }, 150987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z18rsgBindDepthTarget13rs_allocation", (void *)&SC_BindFrameBufferObjectDepthTarget, false }, 151087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z19rsgClearColorTargetj", (void *)&SC_ClearFrameBufferObjectColorTarget, false }, 151187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z19rsgClearDepthTargetv", (void *)&SC_ClearFrameBufferObjectDepthTarget, false }, 151287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z24rsgClearAllRenderTargetsv", (void *)&SC_ClearFrameBufferObjectTargets, false }, 15131aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray 151487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 1515aa152101cc4d04597d9aefc3e5a1454eaf39d2ccJason Sams { "_Z9rsForEach9rs_script13rs_allocationS0_", (void *)&SC_ForEach_SAA, true }, 1516aa152101cc4d04597d9aefc3e5a1454eaf39d2ccJason Sams { "_Z9rsForEach9rs_script13rs_allocationS0_PKv", (void *)&SC_ForEach_SAAU, true }, 1517f598811a60088236222bb1879503842094ca378bStephen Hines { "_Z9rsForEach9rs_script13rs_allocationS0_PKvPK14rs_script_call", (void *)&SC_ForEach_SAAUS, true }, 15182f6dc8469a45fa2dafcb772c76009565d0c3885fTim Murray 15192f6dc8469a45fa2dafcb772c76009565d0c3885fTim Murray //rsForEach with usrdata is not supported in 64-bit 15202f6dc8469a45fa2dafcb772c76009565d0c3885fTim Murray#ifndef __LP64__ 1521aa152101cc4d04597d9aefc3e5a1454eaf39d2ccJason Sams { "_Z9rsForEach9rs_script13rs_allocationS0_PKvj", (void *)&SC_ForEach_SAAUL, true }, 1522f598811a60088236222bb1879503842094ca378bStephen Hines { "_Z9rsForEach9rs_script13rs_allocationS0_PKvjPK14rs_script_call", (void *)&SC_ForEach_SAAULS, true }, 15232f6dc8469a45fa2dafcb772c76009565d0c3885fTim Murray#endif 15241aa9dfc002f6b763d34d75d9f47abb4aa70584a2Tim Murray#endif // RS_COMPATIBILITY_LIB 152587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 152664147ebf4f0b1c23d2caf2cf7c1675d27de97d99Tim Murray#ifndef __LP64__ 152787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams // time 152887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z6rsTimePi", (void *)&SC_Time, true }, 152987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsLocaltimeP5rs_tmPKi", (void *)&SC_LocalTime, true }, 153064147ebf4f0b1c23d2caf2cf7c1675d27de97d99Tim Murray#else 153164147ebf4f0b1c23d2caf2cf7c1675d27de97d99Tim Murray // time 153264147ebf4f0b1c23d2caf2cf7c1675d27de97d99Tim Murray { "_Z6rsTimePl", (void *)&SC_Time, true }, 153364147ebf4f0b1c23d2caf2cf7c1675d27de97d99Tim Murray { "_Z11rsLocaltimeP5rs_tmPKl", (void *)&SC_LocalTime, true }, 153464147ebf4f0b1c23d2caf2cf7c1675d27de97d99Tim Murray#endif 153587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsUptimeMillisv", (void*)&SC_UptimeMillis, true }, 153687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsUptimeNanosv", (void*)&SC_UptimeNanos, true }, 153787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z7rsGetDtv", (void*)&SC_GetDt, false }, 153887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 153987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams // misc 15400b575de8ed0b628d84d256f5846500b0385979bdTim Murray#ifndef RS_COMPATIBILITY_LIB 154187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z5colorffff", (void *)&SC_Color, false }, 154287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z9rsgFinishv", (void *)&SC_Finish, false }, 15430b575de8ed0b628d84d256f5846500b0385979bdTim Murray#endif 154487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 154544bef6fba6244292b751387f3d6c31cca96c28adChris Wailes { nullptr, nullptr, false } 154687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams}; 154787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 15482544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar#ifndef RS_COMPATIBILITY_LIB 15492544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 15502544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainartypedef struct { unsigned int val; } rs_allocation_usage_type; 15512544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 1552709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainarvoid rsAllocationMarkDirty(::rs_allocation a) { 155331729ad313f009d430255bfac8ef644db0c9215bYong Chen return SC_AllocationSyncAll(RS_CAST(a)); 1554709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar} 1555709a1894c9c265433dc657878cba7b1be2514040Pirama Arumuga Nainar 15562544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgAllocationSyncAll(::rs_allocation a) { 155731729ad313f009d430255bfac8ef644db0c9215bYong Chen return SC_AllocationSyncAll(RS_CAST(a)); 15582544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 15592544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 15602544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgAllocationSyncAll(::rs_allocation a, 15612544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar unsigned int usage) { 156231729ad313f009d430255bfac8ef644db0c9215bYong Chen return SC_AllocationSyncAll2(RS_CAST(a), (RsAllocationUsageType) usage); 15632544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 15642544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgAllocationSyncAll(::rs_allocation a, 15652544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar rs_allocation_usage_type source) { 156631729ad313f009d430255bfac8ef644db0c9215bYong Chen return SC_AllocationSyncAll2(RS_CAST(a), (RsAllocationUsageType) source.val); 15672544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 15682544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 15692544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgBindProgramFragment(::rs_program_fragment pf) { 15702544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_BindProgramFragment((ProgramFragment *) pf.p); 15712544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 15722544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 15732544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgBindProgramStore(::rs_program_store ps) { 15742544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_BindProgramStore((ProgramStore *) ps.p); 15752544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 15762544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 15772544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgBindProgramVertex(::rs_program_vertex pv) { 15782544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_BindProgramVertex((ProgramVertex *) pv.p); 15792544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 15802544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 15812544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgBindProgramRaster(::rs_program_raster pr) { 15822544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_BindProgramRaster((ProgramRaster *) pr.p); 15832544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 15842544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 15852544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgBindSampler(::rs_program_fragment pf, 15862544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar uint32_t slot, 15872544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar ::rs_sampler s) { 15882544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_BindSampler((ProgramFragment *) pf.p, slot, (Sampler *) s.p); 15892544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 15902544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 15912544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgBindTexture(::rs_program_fragment pf, 15922544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar uint32_t slot, 15932544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar ::rs_allocation a) { 15942544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_BindTexture((ProgramFragment *) pf.p, 15952544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar slot, 15962544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar (Allocation *) a.p); 15972544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 15982544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 15992544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgBindConstant(::rs_program_fragment pf, 16002544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar uint32_t slot, 16012544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar ::rs_allocation a) { 16022544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_BindFragmentConstant((ProgramFragment *) pf.p, 16032544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar slot, 16042544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar (Allocation *) a.p); 16052544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 16062544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16072544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgBindConstant(::rs_program_vertex pv, 16082544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar uint32_t slot, 16092544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar ::rs_allocation a) { 16102544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_BindVertexConstant((ProgramVertex *) pv.p, 16112544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar slot, 16122544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar (Allocation *) a.p); 16132544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 16142544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16152544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgProgramVertexLoadProjectionMatrix(const rs_matrix4x4 *m) { 16162544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_VpLoadProjectionMatrix((const rsc_Matrix *) m); 16172544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 16182544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16192544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgProgramVertexLoadModelMatrix(const rs_matrix4x4 *m) { 16202544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_VpLoadModelMatrix((const rsc_Matrix *) m); 16212544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 16222544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16232544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgProgramVertexLoadTextureMatrix(const rs_matrix4x4 *m) { 16242544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_VpLoadTextureMatrix((const rsc_Matrix *) m); 16252544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 16262544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16272544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgProgramVertexGetProjectionMatrix(rs_matrix4x4 *m) { 16282544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_VpGetProjectionMatrix((rsc_Matrix *) m); 16292544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 16302544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16312544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgProgramFragmentConstantColor(::rs_program_fragment pf, 16322544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar float r, float g, 16332544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar float b, float a) { 16342544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16352544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_PfConstantColor((ProgramFragment *) pf.p, r, g, b, a); 16362544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 16372544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16382544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainaruint32_t rsgGetWidth(void) { 16392544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_GetWidth(); 16402544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 16412544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16422544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainaruint32_t rsgGetHeight(void) { 16432544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_GetHeight(); 16442544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 16452544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16462544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgDrawRect(float x1, float y1, float x2, float y2, float z) { 16472544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_DrawRect(x1, y1, x2, y2, z); 16482544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 16492544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16502544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgDrawQuad(float x1, float y1, float z1, 16512544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar float x2, float y2, float z2, 16522544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar float x3, float y3, float z3, 16532544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar float x4, float y4, float z4) { 16542544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16552544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar SC_DrawQuad(x1, y1, z1, 16562544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar x2, y2, z2, 16572544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar x3, y3, z3, 16582544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar x4, y4, z4); 16592544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 16602544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16612544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgDrawQuadTexCoords(float x1, float y1, float z1, float u1, float v1, 16622544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar float x2, float y2, float z2, float u2, float v2, 16632544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar float x3, float y3, float z3, float u3, float v3, 16642544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar float x4, float y4, float z4, float u4, float v4) { 16652544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16662544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return rsgDrawQuadTexCoords(x1, y1, z1, u1, v1, 16672544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar x2, y2, z2, u2, v2, 16682544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar x3, y3, z3, u3, v3, 16692544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar x4, y4, z4, u4, v4); 16702544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 16712544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16722544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgDrawSpriteScreenspace(float x, float y, float z, float w, float h) { 16732544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_DrawSpriteScreenspace(x, y, z, w, h); 16742544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 16752544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16762544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgDrawMesh(::rs_mesh ism) { 16772544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_DrawMesh((Mesh *) ism.p); 16782544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 16792544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16802544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgDrawMesh(::rs_mesh ism, uint primitiveIndex) { 16812544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_DrawMeshPrimitive((Mesh *) ism.p, primitiveIndex); 16822544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 16832544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16842544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgDrawMesh(::rs_mesh ism, uint primitiveIndex, uint start, uint len) { 16852544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_DrawMeshPrimitiveRange((Mesh *) ism.p, primitiveIndex, start, len); 16862544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 16872544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16882544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgMeshComputeBoundingBox(::rs_mesh mesh, 16892544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar float *minX, float *minY, float *minZ, 16902544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar float *maxX, float *maxY, float *maxZ) { 16912544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16922544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_MeshComputeBoundingBox((Mesh *) mesh.p, 16932544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar minX, minY, minZ, 16942544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar maxX, maxY, maxZ); 16952544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 16962544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 16972544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgDrawPath(::rs_path p) { 16982544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_DrawPath((Path *) p.p); 16992544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 17002544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 17012544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgClearColor(float r, float g, float b, float a) { 17022544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_ClearColor(r, g, b, a); 17032544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 17042544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 17052544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgClearDepth(float value) { 17062544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_ClearDepth(value); 17072544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 17082544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 17092544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgDrawText(const char *text, int x, int y) { 17102544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_DrawText(text, x, y); 17112544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 17122544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 17132544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgDrawText(::rs_allocation a, int x, int y) { 17142544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_DrawTextAlloc((Allocation *) a.p, x, y); 17152544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 17162544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 17172544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgMeasureText(const char *text, int *left, int *right, 17182544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar int *top, int *bottom) { 17192544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_MeasureText(text, left, right, top, bottom); 17202544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 17212544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 17222544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgMeasureText(::rs_allocation a, int *left, int *right, 17232544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar int *top, int *bottom) { 17242544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_MeasureTextAlloc((Allocation *) a.p, left, right, top, bottom); 17252544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 17262544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 17272544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgBindFont(::rs_font font) { 17282544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_BindFont((Font *) font.p); 17292544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 17302544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 17312544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgFontColor(float r, float g, float b, float a) { 17322544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_FontColor(r, g, b, a); 17332544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 17342544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 17352544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgBindColorTarget(::rs_allocation a, uint slot) { 17362544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_BindFrameBufferObjectColorTarget((Allocation *) a.p, slot); 17372544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 17382544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 17392544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgBindDepthTarget(::rs_allocation a) { 17402544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_BindFrameBufferObjectDepthTarget((Allocation *) a.p); 17412544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 17422544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 17432544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgClearColorTarget(uint slot) { 17442544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_ClearFrameBufferObjectColorTarget(slot); 17452544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 17462544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 17472544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgClearDepthTarget(void) { 17482544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_ClearFrameBufferObjectDepthTarget(nullptr, nullptr); 17492544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 17502544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 17512544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgClearAllRenderTargets(void) { 17522544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_ClearFrameBufferObjectTargets(nullptr, nullptr); 17532544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 17542544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 17552544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid color(float r, float g, float b, float a) { 17562544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_Color(r, g, b, a); 17572544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 17582544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 17592544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainarvoid rsgFinish(void) { 17602544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar return SC_Finish(); 17612544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar} 17622544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 17632544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar#endif 17642544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 1765d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray////////////////////////////////////////////////////////////////////////////// 1766d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray// Compatibility Library entry points 1767d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray////////////////////////////////////////////////////////////////////////////// 1768d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 1769dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar#ifndef __LP64__ 1770dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar#define IS_CLEAR_SET_OBJ(t, u, v) \ 1771f827cadde659212b266b9635128c98515a7dcb01Stephen Hines bool rsIsObject(t src) { \ 177244bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return src.p != nullptr; \ 1773f827cadde659212b266b9635128c98515a7dcb01Stephen Hines } \ 1774d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray void __attribute__((overloadable)) rsClearObject(t *dst) { \ 1775f29edf80510d483b8663e9d8b859959e37361aeeJason Sams return SC_ClearObject(reinterpret_cast<rs_object_base *>(dst)); \ 1776d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray } \ 1777d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray void __attribute__((overloadable)) rsSetObject(t *dst, t src) { \ 1778dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar android::renderscript::rs_object_base cast; \ 1779dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar cast.p = (ObjectBase *) src.p; \ 1780dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar return SC_SetObject(reinterpret_cast<rs_object_base *>(dst), cast);\ 1781d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray } 1782dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar#else 1783dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar#define IS_CLEAR_SET_OBJ(t, u, v) \ 1784dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar extern "C" { bool u(t* src) { \ 1785dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar return src->p != nullptr; \ 1786dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar } }\ 1787dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar void __attribute__((overloadable)) rsClearObject(t *dst) { \ 1788dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar return SC_ClearObject(reinterpret_cast<rs_object_base *>(dst)); \ 1789dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar } \ 1790dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar extern "C" {\ 1791dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar void v (t *dst, t *src) { \ 1792dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar return SC_SetObject_ByRef(reinterpret_cast<rs_object_base *>(dst),\ 1793dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar reinterpret_cast<rs_object_base *>(src));\ 1794dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar } } 1795dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar#endif 1796dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar 1797dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga NainarIS_CLEAR_SET_OBJ(::rs_element, _Z10rsIsObject10rs_element, _Z11rsSetObjectP10rs_elementS_) 1798dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga NainarIS_CLEAR_SET_OBJ(::rs_type, _Z10rsIsObject7rs_type, _Z11rsSetObjectP7rs_typeS_) 1799dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga NainarIS_CLEAR_SET_OBJ(::rs_allocation, _Z10rsIsObject13rs_allocation, _Z11rsSetObjectP13rs_allocationS_) 1800dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga NainarIS_CLEAR_SET_OBJ(::rs_sampler, _Z10rsIsObject10rs_sampler, _Z11rsSetObjectP10rs_samplerS_) 1801dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga NainarIS_CLEAR_SET_OBJ(::rs_script, _Z10rsIsObject9rs_script, _Z11rsSetObjectP9rs_scriptS_) 1802dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar 18032544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga NainarIS_CLEAR_SET_OBJ(::rs_path, _Z10rsIsObject7rs_path, _Z11rsSetObjectP7rs_pathS_) 18042544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga NainarIS_CLEAR_SET_OBJ(::rs_mesh, _Z10rsIsObject7rs_mesh, _Z11rsSetObjectP7rs_meshS_) 18052544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga NainarIS_CLEAR_SET_OBJ(::rs_program_fragment, _Z10rsIsObject19rs_program_fragment, _Z11rsSetObjectP19rs_program_fragmentS_) 18062544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga NainarIS_CLEAR_SET_OBJ(::rs_program_vertex, _Z10rsIsObject17rs_program_vertex, _Z11rsSetObjectP17rs_program_vertexS_) 18072544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga NainarIS_CLEAR_SET_OBJ(::rs_program_raster, _Z10rsIsObject17rs_program_raster, _Z11rsSetObjectP17rs_program_rasterS_) 18082544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga NainarIS_CLEAR_SET_OBJ(::rs_program_store, _Z10rsIsObject16rs_program_store, _Z11rsSetObjectP16rs_program_storeS_) 18092544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga NainarIS_CLEAR_SET_OBJ(::rs_font, _Z10rsIsObject7rs_font, _Z11rsSetObjectP7rs_fontS_) 18102544371624a3dd21ae2355e8fea870e29009332aPirama Arumuga Nainar 1811d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 1812f827cadde659212b266b9635128c98515a7dcb01Stephen Hines#undef IS_CLEAR_SET_OBJ 1813d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 1814dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar#ifdef RS_COMPATIBILITY_LIB 181547211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murraystatic const Allocation * SC_GetAllocation(const void *ptr) { 181647211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray Context *rsc = RsdCpuReference::getTlsContext(); 181747211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray const Script *sc = RsdCpuReference::getTlsScript(); 181847211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray return rsdScriptGetAllocationForPointer(rsc, sc, ptr); 181947211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray} 182047211dca5b2fc1aa5680ddebe5c4270c08c06e5dTim Murray 1821d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murrayconst Allocation * rsGetAllocation(const void *ptr) { 1822d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray return SC_GetAllocation(ptr); 1823d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray} 1824d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 1825dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar#else 1826dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainarconst android::renderscript::rs_allocation rsGetAllocation(const void *ptr) { 1827dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar#ifdef __i386__ 1828dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar android::renderscript::rs_allocation obj; 1829dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar obj.p = (Allocation *) SC_GetAllocation(ptr); 1830dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar return obj; 1831dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar#else 1832dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar return SC_GetAllocation(ptr); 1833dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar#endif 1834dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar} 1835dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar#endif 1836dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar 1837dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar 1838a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Samsvoid __attribute__((overloadable)) rsAllocationIoSend(::rs_allocation a) { 183931729ad313f009d430255bfac8ef644db0c9215bYong Chen SC_AllocationIoSend(RS_CAST(a)); 18407a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines} 18417a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines 1842a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Samsvoid __attribute__((overloadable)) rsAllocationIoReceive(::rs_allocation a) { 184331729ad313f009d430255bfac8ef644db0c9215bYong Chen SC_AllocationIoReceive(RS_CAST(a)); 18447a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines} 18457a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines 18467a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines 18477a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hinesvoid __attribute__((overloadable)) rsAllocationCopy1DRange( 1848a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation dstAlloc, 18497a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines uint32_t dstOff, uint32_t dstMip, uint32_t count, 1850a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation srcAlloc, 18517a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines uint32_t srcOff, uint32_t srcMip) { 185231729ad313f009d430255bfac8ef644db0c9215bYong Chen SC_AllocationCopy1DRange(RS_CAST(dstAlloc), dstOff, dstMip, count, 185331729ad313f009d430255bfac8ef644db0c9215bYong Chen RS_CAST(srcAlloc), srcOff, srcMip); 18547a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines} 18557a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines 18567a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hinesvoid __attribute__((overloadable)) rsAllocationCopy2DRange( 1857a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation dstAlloc, 18587a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines uint32_t dstXoff, uint32_t dstYoff, 18597a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines uint32_t dstMip, rs_allocation_cubemap_face dstFace, 18607a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines uint32_t width, uint32_t height, 1861a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation srcAlloc, 18627a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines uint32_t srcXoff, uint32_t srcYoff, 18637a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines uint32_t srcMip, rs_allocation_cubemap_face srcFace) { 186431729ad313f009d430255bfac8ef644db0c9215bYong Chen SC_AllocationCopy2DRange(RS_CAST(dstAlloc), dstXoff, dstYoff, 18657a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines dstMip, dstFace, width, height, 186631729ad313f009d430255bfac8ef644db0c9215bYong Chen RS_CAST(srcAlloc), srcXoff, srcYoff, 18677a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines srcMip, srcFace); 18687a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines} 18697a01126d25c081f5b613eea80e5ff7e6c75c940fStephen Hines 1870a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Samsvoid __attribute__((overloadable)) rsForEach(::rs_script script, 1871a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation in, 1872a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation out, 1873d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray const void *usr, 1874d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray const rs_script_call *call) { 187531729ad313f009d430255bfac8ef644db0c9215bYong Chen return SC_ForEach_SAAUS(RS_CAST(script), RS_CAST(in), RS_CAST(out), usr, (RsScriptCall*)call); 1876d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray} 1877d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 1878a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Samsvoid __attribute__((overloadable)) rsForEach(::rs_script script, 1879a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation in, 1880dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar ::rs_allocation out, 1881dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar const void *usr) { 188231729ad313f009d430255bfac8ef644db0c9215bYong Chen return SC_ForEach_SAAU(RS_CAST(script), RS_CAST(in), RS_CAST(out), usr); 1883dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar} 1884dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar 1885dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainarvoid __attribute__((overloadable)) rsForEach(::rs_script script, 1886dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar ::rs_allocation in, 1887a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation out) { 188831729ad313f009d430255bfac8ef644db0c9215bYong Chen return SC_ForEach_SAA(RS_CAST(script), RS_CAST(in), RS_CAST(out)); 1889276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines} 1890276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines 1891447e8362fc760b3d2789dbfe1eec33f1fc6b1c0ePirama Arumuga Nainar#ifndef __LP64__ 1892a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Samsvoid __attribute__((overloadable)) rsForEach(::rs_script script, 1893a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation in, 1894a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation out, 1895276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines const void *usr, 1896276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines uint32_t usrLen) { 189731729ad313f009d430255bfac8ef644db0c9215bYong Chen return SC_ForEach_SAAUL(RS_CAST(script), RS_CAST(in), RS_CAST(out), usr, usrLen); 1898276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines} 1899276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines 1900a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Samsvoid __attribute__((overloadable)) rsForEach(::rs_script script, 1901a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation in, 1902a36c50a6ab87f4c9049318d4c6c8ec7b0a1e6e12Jason Sams ::rs_allocation out, 1903d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray const void *usr, 1904d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray uint32_t usrLen, 1905d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray const rs_script_call *call) { 190631729ad313f009d430255bfac8ef644db0c9215bYong Chen return SC_ForEach_SAAULS(RS_CAST(script), RS_CAST(in), RS_CAST(out), usr, usrLen, (RsScriptCall*)call); 1907d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray} 1908447e8362fc760b3d2789dbfe1eec33f1fc6b1c0ePirama Arumuga Nainar#endif 1909d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 1910dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar// #if defined(RS_COMPATIBILITY_LIB) || !defined(__LP64__) 1911dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar#ifndef __LP64__ 1912d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murrayint rsTime(int *timer) { 1913d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray return SC_Time(timer); 1914d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray} 1915140a8eb2ffc08af5d7aec4f7f701720235703677Stephen Hines 1916140a8eb2ffc08af5d7aec4f7f701720235703677Stephen Hinesrs_tm* rsLocaltime(rs_tm* local, const int *timer) { 1917140a8eb2ffc08af5d7aec4f7f701720235703677Stephen Hines return (rs_tm*)(SC_LocalTime((tm*)local, (time_t *)timer)); 1918140a8eb2ffc08af5d7aec4f7f701720235703677Stephen Hines} 1919dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar#else 1920dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainartime_t rsTime(time_t * timer) { 1921dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar return SC_Time(timer); 1922dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar} 1923d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 1924dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainarrs_tm* rsLocaltime(rs_tm* local, const time_t *timer) { 1925dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar return (rs_tm*)(SC_LocalTime((tm*)local, (time_t *)timer)); 1926d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray} 1927140a8eb2ffc08af5d7aec4f7f701720235703677Stephen Hines#endif // RS_COMPATIBILITY_LIB 1928d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 1929d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murrayint64_t rsUptimeMillis() { 1930d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray Context *rsc = RsdCpuReference::getTlsContext(); 1931d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray return rsrUptimeMillis(rsc); 1932d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray} 1933d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 1934cadee38f6940e5584d3ec3398a21bd2a494361e2Stephen Hinesint64_t rsUptimeNanos() { 1935cadee38f6940e5584d3ec3398a21bd2a494361e2Stephen Hines return SC_UptimeNanos(); 1936cadee38f6940e5584d3ec3398a21bd2a494361e2Stephen Hines} 1937cadee38f6940e5584d3ec3398a21bd2a494361e2Stephen Hines 1938cadee38f6940e5584d3ec3398a21bd2a494361e2Stephen Hinesfloat rsGetDt() { 1939cadee38f6940e5584d3ec3398a21bd2a494361e2Stephen Hines return SC_GetDt(); 1940cadee38f6940e5584d3ec3398a21bd2a494361e2Stephen Hines} 1941cadee38f6940e5584d3ec3398a21bd2a494361e2Stephen Hines 1942276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hinesuint32_t rsSendToClient(int cmdID) { 1943276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines return SC_ToClient(cmdID); 1944276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines} 1945276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines 1946276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hinesuint32_t rsSendToClient(int cmdID, const void *data, uint32_t len) { 1947276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines return SC_ToClient2(cmdID, data, len); 1948d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray} 1949d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray 19500b575de8ed0b628d84d256f5846500b0385979bdTim Murrayuint32_t rsSendToClientBlocking(int cmdID) { 1951276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines return SC_ToClientBlocking(cmdID); 1952276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines} 1953276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines 1954276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hinesuint32_t rsSendToClientBlocking(int cmdID, const void *data, uint32_t len) { 1955276000a3673e639f9abc41db4709c1b0a96c1bf9Stephen Hines return SC_ToClientBlocking2(cmdID, data, len); 19560b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 19570b575de8ed0b628d84d256f5846500b0385979bdTim Murray 19580b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugF(const char *s, float f) { 19590b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %f, 0x%08x", s, f, *((int *) (&f))); 19600b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 19610b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugFv2(const char *s, float f1, float f2) { 19620b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%f, %f}", s, f1, f2); 19630b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 19640b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugFv3(const char *s, float f1, float f2, float f3) { 19650b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%f, %f, %f}", s, f1, f2, f3); 19660b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 19670b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugFv4(const char *s, float f1, float f2, float f3, float f4) { 19680b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%f, %f, %f, %f}", s, f1, f2, f3, f4); 19690b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 19700b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugF2(const char *s, float2 f) { 19710b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%f, %f}", s, f.x, f.y); 19720b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 19730b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugF3(const char *s, float3 f) { 19740b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%f, %f, %f}", s, f.x, f.y, f.z); 19750b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 19760b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugF4(const char *s, float4 f) { 19770b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%f, %f, %f, %f}", s, f.x, f.y, f.z, f.w); 19780b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 19790b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugD(const char *s, double d) { 19800b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %f, 0x%08llx", s, d, *((long long *) (&d))); 19810b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 19820b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugFM4v4(const char *s, const float *f) { 19830b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%f, %f, %f, %f", s, f[0], f[4], f[8], f[12]); 19840b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %f, %f, %f, %f", s, f[1], f[5], f[9], f[13]); 19850b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %f, %f, %f, %f", s, f[2], f[6], f[10], f[14]); 19860b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %f, %f, %f, %f}", s, f[3], f[7], f[11], f[15]); 19870b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 19880b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugFM3v3(const char *s, const float *f) { 19890b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%f, %f, %f", s, f[0], f[3], f[6]); 19900b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %f, %f, %f", s, f[1], f[4], f[7]); 19910b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %f, %f, %f}",s, f[2], f[5], f[8]); 19920b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 19930b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugFM2v2(const char *s, const float *f) { 19940b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%f, %f", s, f[0], f[2]); 19950b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %f, %f}",s, f[1], f[3]); 19960b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 19970b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugI8(const char *s, char c) { 19980b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %hhd 0x%hhx", s, c, (unsigned char)c); 19990b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20000b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugC2(const char *s, char2 c) { 20010b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hhd, %hhd} 0x%hhx 0x%hhx", s, c.x, c.y, (unsigned char)c.x, (unsigned char)c.y); 20020b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20030b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugC3(const char *s, char3 c) { 20040b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hhd, %hhd, %hhd} 0x%hhx 0x%hhx 0x%hhx", s, c.x, c.y, c.z, (unsigned char)c.x, (unsigned char)c.y, (unsigned char)c.z); 20050b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20060b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugC4(const char *s, char4 c) { 20070b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hhd, %hhd, %hhd, %hhd} 0x%hhx 0x%hhx 0x%hhx 0x%hhx", s, c.x, c.y, c.z, c.w, (unsigned char)c.x, (unsigned char)c.y, (unsigned char)c.z, (unsigned char)c.w); 20080b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20090b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugU8(const char *s, unsigned char c) { 20100b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %hhu 0x%hhx", s, c, c); 20110b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20120b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUC2(const char *s, uchar2 c) { 20130b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hhu, %hhu} 0x%hhx 0x%hhx", s, c.x, c.y, c.x, c.y); 20140b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20150b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUC3(const char *s, uchar3 c) { 20160b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hhu, %hhu, %hhu} 0x%hhx 0x%hhx 0x%hhx", s, c.x, c.y, c.z, c.x, c.y, c.z); 20170b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20180b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUC4(const char *s, uchar4 c) { 20190b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hhu, %hhu, %hhu, %hhu} 0x%hhx 0x%hhx 0x%hhx 0x%hhx", s, c.x, c.y, c.z, c.w, c.x, c.y, c.z, c.w); 20200b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20210b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugI16(const char *s, short c) { 20220b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %hd 0x%hx", s, c, c); 20230b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20240b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugS2(const char *s, short2 c) { 20250b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hd, %hd} 0x%hx 0x%hx", s, c.x, c.y, c.x, c.y); 20260b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20270b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugS3(const char *s, short3 c) { 20280b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hd, %hd, %hd} 0x%hx 0x%hx 0x%hx", s, c.x, c.y, c.z, c.x, c.y, c.z); 20290b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20300b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugS4(const char *s, short4 c) { 20310b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hd, %hd, %hd, %hd} 0x%hx 0x%hx 0x%hx 0x%hx", s, c.x, c.y, c.z, c.w, c.x, c.y, c.z, c.w); 20320b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20330b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugU16(const char *s, unsigned short c) { 20340b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %hu 0x%hx", s, c, c); 20350b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20360b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUS2(const char *s, ushort2 c) { 20370b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hu, %hu} 0x%hx 0x%hx", s, c.x, c.y, c.x, c.y); 20380b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20390b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUS3(const char *s, ushort3 c) { 20400b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hu, %hu, %hu} 0x%hx 0x%hx 0x%hx", s, c.x, c.y, c.z, c.x, c.y, c.z); 20410b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20420b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUS4(const char *s, ushort4 c) { 20430b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%hu, %hu, %hu, %hu} 0x%hx 0x%hx 0x%hx 0x%hx", s, c.x, c.y, c.z, c.w, c.x, c.y, c.z, c.w); 20440b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20450b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugI32(const char *s, int32_t i) { 20460b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %d 0x%x", s, i, i); 20470b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20480b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugI2(const char *s, int2 i) { 20490b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%d, %d} 0x%x 0x%x", s, i.x, i.y, i.x, i.y); 20500b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20510b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugI3(const char *s, int3 i) { 20520b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%d, %d, %d} 0x%x 0x%x 0x%x", s, i.x, i.y, i.z, i.x, i.y, i.z); 20530b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20540b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugI4(const char *s, int4 i) { 20550b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%d, %d, %d, %d} 0x%x 0x%x 0x%x 0x%x", s, i.x, i.y, i.z, i.w, i.x, i.y, i.z, i.w); 20560b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20570b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugU32(const char *s, uint32_t i) { 20580b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %u 0x%x", s, i, i); 20590b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20600b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUI2(const char *s, uint2 i) { 20610b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%u, %u} 0x%x 0x%x", s, i.x, i.y, i.x, i.y); 20620b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20630b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUI3(const char *s, uint3 i) { 20640b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%u, %u, %u} 0x%x 0x%x 0x%x", s, i.x, i.y, i.z, i.x, i.y, i.z); 20650b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20660b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUI4(const char *s, uint4 i) { 20670b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s {%u, %u, %u, %u} 0x%x 0x%x 0x%x 0x%x", s, i.x, i.y, i.z, i.w, i.x, i.y, i.z, i.w); 20680b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 2069127d51c1193f4055795da967d47a13bedd3cb951Miao Wang 2070127d51c1193f4055795da967d47a13bedd3cb951Miao Wangtemplate <typename T> 2071127d51c1193f4055795da967d47a13bedd3cb951Miao Wangstatic inline long long LL(const T &x) { 2072127d51c1193f4055795da967d47a13bedd3cb951Miao Wang return static_cast<long long>(x); 2073127d51c1193f4055795da967d47a13bedd3cb951Miao Wang} 2074127d51c1193f4055795da967d47a13bedd3cb951Miao Wang 2075127d51c1193f4055795da967d47a13bedd3cb951Miao Wangtemplate <typename T> 2076127d51c1193f4055795da967d47a13bedd3cb951Miao Wangstatic inline unsigned long long LLu(const T &x) { 2077127d51c1193f4055795da967d47a13bedd3cb951Miao Wang return static_cast<unsigned long long>(x); 2078127d51c1193f4055795da967d47a13bedd3cb951Miao Wang} 2079127d51c1193f4055795da967d47a13bedd3cb951Miao Wang 2080dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainarstatic void SC_debugLL64(const char *s, long long ll) { 2081dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar ALOGD("%s %lld 0x%llx", s, LL(ll), LL(ll)); 2082dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar} 2083dc0d8f7c0f1f43f25c34fbc04656ad578f6e953bPirama Arumuga Nainar 20840b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugL2(const char *s, long2 ll) { 2085127d51c1193f4055795da967d47a13bedd3cb951Miao Wang ALOGD("%s {%lld, %lld} 0x%llx 0x%llx", s, LL(ll.x), LL(ll.y), LL(ll.x), LL(ll.y)); 20860b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20870b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugL3(const char *s, long3 ll) { 2088127d51c1193f4055795da967d47a13bedd3cb951Miao Wang ALOGD("%s {%lld, %lld, %lld} 0x%llx 0x%llx 0x%llx", s, LL(ll.x), LL(ll.y), LL(ll.z), LL(ll.x), LL(ll.y), LL(ll.z)); 20890b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20900b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugL4(const char *s, long4 ll) { 2091127d51c1193f4055795da967d47a13bedd3cb951Miao Wang ALOGD("%s {%lld, %lld, %lld, %lld} 0x%llx 0x%llx 0x%llx 0x%llx", s, LL(ll.x), LL(ll.y), LL(ll.z), LL(ll.w), LL(ll.x), LL(ll.y), LL(ll.z), LL(ll.w)); 20920b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20930b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugULL64(const char *s, unsigned long long ll) { 20940b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %llu 0x%llx", s, ll, ll); 20950b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20960b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUL2(const char *s, ulong2 ll) { 2097127d51c1193f4055795da967d47a13bedd3cb951Miao Wang ALOGD("%s {%llu, %llu} 0x%llx 0x%llx", s, LLu(ll.x), LLu(ll.y), LLu(ll.x), LLu(ll.y)); 20980b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 20990b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUL3(const char *s, ulong3 ll) { 2100127d51c1193f4055795da967d47a13bedd3cb951Miao Wang ALOGD("%s {%llu, %llu, %llu} 0x%llx 0x%llx 0x%llx", s, LLu(ll.x), LLu(ll.y), LLu(ll.z), LLu(ll.x), LLu(ll.y), LLu(ll.z)); 21010b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21020b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugUL4(const char *s, ulong4 ll) { 2103127d51c1193f4055795da967d47a13bedd3cb951Miao Wang ALOGD("%s {%llu, %llu, %llu, %llu} 0x%llx 0x%llx 0x%llx 0x%llx", s, LLu(ll.x), LLu(ll.y), LLu(ll.z), LLu(ll.w), LLu(ll.x), LLu(ll.y), LLu(ll.z), LLu(ll.w)); 21040b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 2105127d51c1193f4055795da967d47a13bedd3cb951Miao Wang 21060b575de8ed0b628d84d256f5846500b0385979bdTim Murraystatic void SC_debugP(const char *s, const void *p) { 21070b575de8ed0b628d84d256f5846500b0385979bdTim Murray ALOGD("%s %p", s, p); 21080b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21090b575de8ed0b628d84d256f5846500b0385979bdTim Murray 21100b575de8ed0b628d84d256f5846500b0385979bdTim Murray// TODO: allocation ops, messaging, time 21110b575de8ed0b628d84d256f5846500b0385979bdTim Murray 21120b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, float f) { 21130b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugF(s, f); 21140b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21150b575de8ed0b628d84d256f5846500b0385979bdTim Murray 21160b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, float f1, float f2) { 21170b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugFv2(s, f1, f2); 21180b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21190b575de8ed0b628d84d256f5846500b0385979bdTim Murray 21200b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, float f1, float f2, float f3) { 21210b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugFv3(s, f1, f2, f3); 21220b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21230b575de8ed0b628d84d256f5846500b0385979bdTim Murray 21240b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, float f1, float f2, float f3, float f4) { 21250b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugFv4(s, f1, f2, f3, f4); 21260b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21270b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2128b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const float2 *f) { 2129b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugF2(s, *f); 21300b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21310b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2132b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const float3 *f) { 2133b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugF3(s, *f); 21340b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21350b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2136b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const float4 *f) { 2137b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugF4(s, *f); 21380b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21390b575de8ed0b628d84d256f5846500b0385979bdTim Murray 21400b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, double d) { 21410b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugD(s, d); 21420b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21430b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2144b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const rs_matrix4x4 *m) { 21450b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugFM4v4(s, (float *) m); 21460b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21470b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2148b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const rs_matrix3x3 *m) { 2149d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray SC_debugFM3v3(s, (float *) m); 21500b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21510b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2152b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const rs_matrix2x2 *m) { 2153d6f1f46b2929ed56c73ba32357cde31b82972fbeTim Murray SC_debugFM2v2(s, (float *) m); 21540b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21550b575de8ed0b628d84d256f5846500b0385979bdTim Murray 21560b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, char c) { 21570b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugI8(s, c); 21580b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21590b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2160b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const char2 *c) { 2161b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugC2(s, *c); 21620b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21630b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2164b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const char3 *c) { 2165b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugC3(s, *c); 21660b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21670b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2168b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const char4 *c) { 2169b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugC4(s, *c); 21700b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21710b575de8ed0b628d84d256f5846500b0385979bdTim Murray 21720b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, unsigned char c) { 21730b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugU8(s, c); 21740b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21750b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2176b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const uchar2 *c) { 2177b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUC2(s, *c); 21780b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21790b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2180b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const uchar3 *c) { 2181b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUC3(s, *c); 21820b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21830b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2184b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const uchar4 *c) { 2185b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUC4(s, *c); 21860b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21870b575de8ed0b628d84d256f5846500b0385979bdTim Murray 21880b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, short c) { 21890b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugI16(s, c); 21900b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21910b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2192b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const short2 *c) { 2193b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugS2(s, *c); 21940b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21950b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2196b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const short3 *c) { 2197b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugS3(s, *c); 21980b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 21990b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2200b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const short4 *c) { 2201b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugS4(s, *c); 22020b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22030b575de8ed0b628d84d256f5846500b0385979bdTim Murray 22040b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, unsigned short c) { 22050b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugU16(s, c); 22060b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22070b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2208b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const ushort2 *c) { 2209b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUS2(s, *c); 22100b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22110b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2212b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const ushort3 *c) { 2213b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUS3(s, *c); 22140b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22150b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2216b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const ushort4 *c) { 2217b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUS4(s, *c); 22180b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22190b575de8ed0b628d84d256f5846500b0385979bdTim Murray 22200b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, int c) { 22210b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugI32(s, c); 22220b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22230b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2224b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const int2 *c) { 2225b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugI2(s, *c); 22260b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22270b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2228b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const int3 *c) { 2229b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugI3(s, *c); 22300b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22310b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2232b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const int4 *c) { 2233b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugI4(s, *c); 22340b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22350b575de8ed0b628d84d256f5846500b0385979bdTim Murray 22360b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, unsigned int c) { 22370b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugU32(s, c); 22380b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22390b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2240b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const uint2 *c) { 2241b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUI2(s, *c); 22420b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22430b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2244b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const uint3 *c) { 2245b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUI3(s, *c); 22460b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22470b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2248b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const uint4 *c) { 2249b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUI4(s, *c); 22500b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22510b575de8ed0b628d84d256f5846500b0385979bdTim Murray 22520b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, long c) { 22530b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugLL64(s, c); 22540b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22550b575de8ed0b628d84d256f5846500b0385979bdTim Murray 22560b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, long long c) { 22570b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugLL64(s, c); 22580b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22590b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2260b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const long2 *c) { 2261b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugL2(s, *c); 22620b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22630b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2264b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const long3 *c) { 2265b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugL3(s, *c); 22660b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22670b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2268b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const long4 *c) { 2269b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugL4(s, *c); 22700b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22710b575de8ed0b628d84d256f5846500b0385979bdTim Murray 22720b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, unsigned long c) { 22730b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugULL64(s, c); 22740b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22750b575de8ed0b628d84d256f5846500b0385979bdTim Murray 22760b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, unsigned long long c) { 22770b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugULL64(s, c); 22780b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22790b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2280b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const ulong2 *c) { 2281b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUL2(s, *c); 22820b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22830b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2284b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const ulong3 *c) { 2285b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUL3(s, *c); 22860b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22870b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2288b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hinesvoid rsDebug(const char *s, const ulong4 *c) { 2289b0934b67b95cc27e2358c2aa4db5f7c1067c8f9bStephen Hines SC_debugUL4(s, *c); 22900b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 22910b575de8ed0b628d84d256f5846500b0385979bdTim Murray 2292a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines// FIXME: We need to export these function signatures for the compatibility 2293a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines// library. The C++ name mangling that LLVM uses for ext_vector_type requires 2294a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines// different versions for "long" vs. "long long". Note that the called 2295a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines// functions are still using the appropriate 64-bit sizes. 2296127d51c1193f4055795da967d47a13bedd3cb951Miao Wang 2297127d51c1193f4055795da967d47a13bedd3cb951Miao Wang#ifndef __LP64__ 2298a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinestypedef long l2 __attribute__((ext_vector_type(2))); 2299a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinestypedef long l3 __attribute__((ext_vector_type(3))); 2300a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinestypedef long l4 __attribute__((ext_vector_type(4))); 2301a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinestypedef unsigned long ul2 __attribute__((ext_vector_type(2))); 2302a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinestypedef unsigned long ul3 __attribute__((ext_vector_type(3))); 2303a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinestypedef unsigned long ul4 __attribute__((ext_vector_type(4))); 2304a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines 2305a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinesvoid rsDebug(const char *s, const l2 *c) { 2306a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines SC_debugL2(s, *(const long2 *)c); 2307a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines} 2308a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines 2309a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinesvoid rsDebug(const char *s, const l3 *c) { 2310a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines SC_debugL3(s, *(const long3 *)c); 2311a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines} 2312a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines 2313a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinesvoid rsDebug(const char *s, const l4 *c) { 2314a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines SC_debugL4(s, *(const long4 *)c); 2315a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines} 2316a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines 2317a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinesvoid rsDebug(const char *s, const ul2 *c) { 2318a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines SC_debugUL2(s, *(const ulong2 *)c); 2319a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines} 2320a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines 2321a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinesvoid rsDebug(const char *s, const ul3 *c) { 2322a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines SC_debugUL3(s, *(const ulong3 *)c); 2323a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines} 2324a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines 2325a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hinesvoid rsDebug(const char *s, const ul4 *c) { 2326a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines SC_debugUL4(s, *(const ulong4 *)c); 2327a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines} 2328127d51c1193f4055795da967d47a13bedd3cb951Miao Wang#endif 2329a5d9bef6b53ba394087c7c7b9cc60d3aaa7f121bStephen Hines 23309f39aaf0145e9607200141e4716b73319055e6d7Tim Murrayvoid rsDebug(const char *s, const long2 c) { 23319f39aaf0145e9607200141e4716b73319055e6d7Tim Murray SC_debugL2(s, c); 23329f39aaf0145e9607200141e4716b73319055e6d7Tim Murray} 23339f39aaf0145e9607200141e4716b73319055e6d7Tim Murray 23349f39aaf0145e9607200141e4716b73319055e6d7Tim Murrayvoid rsDebug(const char *s, const long3 c) { 23359f39aaf0145e9607200141e4716b73319055e6d7Tim Murray SC_debugL3(s, c); 23369f39aaf0145e9607200141e4716b73319055e6d7Tim Murray} 23379f39aaf0145e9607200141e4716b73319055e6d7Tim Murray 23389f39aaf0145e9607200141e4716b73319055e6d7Tim Murrayvoid rsDebug(const char *s, const long4 c) { 23399f39aaf0145e9607200141e4716b73319055e6d7Tim Murray SC_debugL4(s, c); 23409f39aaf0145e9607200141e4716b73319055e6d7Tim Murray} 23419f39aaf0145e9607200141e4716b73319055e6d7Tim Murray 23429f39aaf0145e9607200141e4716b73319055e6d7Tim Murrayvoid rsDebug(const char *s, const ulong2 c) { 23439f39aaf0145e9607200141e4716b73319055e6d7Tim Murray SC_debugUL2(s, c); 23449f39aaf0145e9607200141e4716b73319055e6d7Tim Murray} 23459f39aaf0145e9607200141e4716b73319055e6d7Tim Murray 23469f39aaf0145e9607200141e4716b73319055e6d7Tim Murrayvoid rsDebug(const char *s, const ulong3 c) { 23479f39aaf0145e9607200141e4716b73319055e6d7Tim Murray SC_debugUL3(s, c); 23489f39aaf0145e9607200141e4716b73319055e6d7Tim Murray} 23499f39aaf0145e9607200141e4716b73319055e6d7Tim Murray 23509f39aaf0145e9607200141e4716b73319055e6d7Tim Murrayvoid rsDebug(const char *s, const ulong4 c) { 23519f39aaf0145e9607200141e4716b73319055e6d7Tim Murray SC_debugUL4(s, c); 23529f39aaf0145e9607200141e4716b73319055e6d7Tim Murray} 23539f39aaf0145e9607200141e4716b73319055e6d7Tim Murray 23549f39aaf0145e9607200141e4716b73319055e6d7Tim Murray 23550b575de8ed0b628d84d256f5846500b0385979bdTim Murrayvoid rsDebug(const char *s, const void *p) { 23560b575de8ed0b628d84d256f5846500b0385979bdTim Murray SC_debugP(s, p); 23570b575de8ed0b628d84d256f5846500b0385979bdTim Murray} 235887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 2359709a0978ae141198018ca9769f8d96292a8928e6Jason Samsextern const RsdCpuReference::CpuSymbol * rsdLookupRuntimeStub(Context * pContext, char const* name) { 236087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams ScriptC *s = (ScriptC *)pContext; 2361709a0978ae141198018ca9769f8d96292a8928e6Jason Sams const RsdCpuReference::CpuSymbol *syms = gSyms; 236244bef6fba6244292b751387f3d6c31cca96c28adChris Wailes const RsdCpuReference::CpuSymbol *sym = nullptr; 236387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 236487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams if (!sym) { 2365709a0978ae141198018ca9769f8d96292a8928e6Jason Sams while (syms->fnPtr) { 2366709a0978ae141198018ca9769f8d96292a8928e6Jason Sams if (!strcmp(syms->name, name)) { 2367709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return syms; 236887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams } 236987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams syms++; 237087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams } 237187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams } 237287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 237344bef6fba6244292b751387f3d6c31cca96c28adChris Wailes return nullptr; 237487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 2375