rsdRuntimeStubs.cpp revision 5261a5ea546ff358edd5aac7602fc4132434f481
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 "utils/Timers.h" 2587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include "rsdCore.h" 26807fdc4b6f3fb893015ee136565d6151bb2332d3Jason Sams#include "rsdBcc.h" 2787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 289e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams#include "rsdPath.h" 29b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams#include "rsdAllocation.h" 30414a46166126da6864258bd25ff183f9a3c6261dStephen Hines#include "rsdShaderCache.h" 31414a46166126da6864258bd25ff183f9a3c6261dStephen Hines#include "rsdVertexArray.h" 3287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 3387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams#include <time.h> 3487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 3587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsusing namespace android; 3687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsusing namespace android::renderscript; 3787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 38a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef float float2 __attribute__((ext_vector_type(2))); 39a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef float float3 __attribute__((ext_vector_type(3))); 40a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef float float4 __attribute__((ext_vector_type(4))); 415261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef double double2 __attribute__((ext_vector_type(2))); 425261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef double double3 __attribute__((ext_vector_type(3))); 435261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef double double4 __attribute__((ext_vector_type(4))); 44a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef char char2 __attribute__((ext_vector_type(2))); 45a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef char char3 __attribute__((ext_vector_type(3))); 46a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef char char4 __attribute__((ext_vector_type(4))); 47a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned char uchar2 __attribute__((ext_vector_type(2))); 48a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned char uchar3 __attribute__((ext_vector_type(3))); 49a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned char uchar4 __attribute__((ext_vector_type(4))); 50a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef short short2 __attribute__((ext_vector_type(2))); 51a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef short short3 __attribute__((ext_vector_type(3))); 52a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef short short4 __attribute__((ext_vector_type(4))); 53a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned short ushort2 __attribute__((ext_vector_type(2))); 54a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned short ushort3 __attribute__((ext_vector_type(3))); 55a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned short ushort4 __attribute__((ext_vector_type(4))); 56a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef int32_t int2 __attribute__((ext_vector_type(2))); 57a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef int32_t int3 __attribute__((ext_vector_type(3))); 58a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef int32_t int4 __attribute__((ext_vector_type(4))); 59a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef uint32_t uint2 __attribute__((ext_vector_type(2))); 60a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef uint32_t uint3 __attribute__((ext_vector_type(3))); 61a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef uint32_t uint4 __attribute__((ext_vector_type(4))); 62a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef long long long2 __attribute__((ext_vector_type(2))); 63a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef long long long3 __attribute__((ext_vector_type(3))); 64a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef long long long4 __attribute__((ext_vector_type(4))); 65a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned long long ulong2 __attribute__((ext_vector_type(2))); 66a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned long long ulong3 __attribute__((ext_vector_type(3))); 67a1dd74c5ce4db0991020a4836be24fc35af4f301Rajeev Sharmatypedef unsigned long long ulong4 __attribute__((ext_vector_type(4))); 6887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 695261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef uint8_t uchar; 705261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef uint16_t ushort; 715261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef uint32_t uint; 725261a5ea546ff358edd5aac7602fc4132434f481Jason Samstypedef uint64_t ulong; 7387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 7487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 7587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// Allocation 7687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 7787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 7887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 7987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_AllocationSyncAll2(Allocation *a, RsAllocationUsageType source) { 80709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 81709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrAllocationSyncAll(rsc, a, source); 8287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 8387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 8487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_AllocationSyncAll(Allocation *a) { 85709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 86709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrAllocationSyncAll(rsc, a, RS_ALLOCATION_USAGE_SCRIPT); 8787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 8887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 8974a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchoukstatic void SC_AllocationCopy1DRange(Allocation *dstAlloc, 9074a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t dstOff, 9174a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t dstMip, 9274a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t count, 9374a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk Allocation *srcAlloc, 9474a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t srcOff, uint32_t srcMip) { 95709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 96a94952436aeb251f587c1bccdf94c7f75285dfe2Alex Sakhartchouk rsrAllocationCopy1DRange(rsc, dstAlloc, dstOff, dstMip, count, 97a94952436aeb251f587c1bccdf94c7f75285dfe2Alex Sakhartchouk srcAlloc, srcOff, srcMip); 9874a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk} 9974a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk 10074a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchoukstatic void SC_AllocationCopy2DRange(Allocation *dstAlloc, 10174a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t dstXoff, uint32_t dstYoff, 10274a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t dstMip, uint32_t dstFace, 10374a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t width, uint32_t height, 10474a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk Allocation *srcAlloc, 10574a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t srcXoff, uint32_t srcYoff, 10674a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk uint32_t srcMip, uint32_t srcFace) { 107709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 108a94952436aeb251f587c1bccdf94c7f75285dfe2Alex Sakhartchouk rsrAllocationCopy2DRange(rsc, dstAlloc, 109a94952436aeb251f587c1bccdf94c7f75285dfe2Alex Sakhartchouk dstXoff, dstYoff, dstMip, dstFace, 110a94952436aeb251f587c1bccdf94c7f75285dfe2Alex Sakhartchouk width, height, 111a94952436aeb251f587c1bccdf94c7f75285dfe2Alex Sakhartchouk srcAlloc, 112a94952436aeb251f587c1bccdf94c7f75285dfe2Alex Sakhartchouk srcXoff, srcYoff, srcMip, srcFace); 11374a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk} 11474a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk 115b322033c13487a174bb9c26466e9684d1ff4de8dJason Samsstatic void SC_AllocationIoSend(Allocation *alloc) { 116709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 117b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams rsdAllocationIoSend(rsc, alloc); 118b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams} 119b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams 120b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams 121b322033c13487a174bb9c26466e9684d1ff4de8dJason Samsstatic void SC_AllocationIoReceive(Allocation *alloc) { 122709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 123b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams rsdAllocationIoReceive(rsc, alloc); 124b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams} 125b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams 126b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams 12774a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk 12887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 12987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// Context 13087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 13187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 13287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindTexture(ProgramFragment *pf, uint32_t slot, Allocation *a) { 133709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 134709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindTexture(rsc, pf, slot, a); 13587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 13687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 137a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchoukstatic void SC_BindVertexConstant(ProgramVertex *pv, uint32_t slot, Allocation *a) { 138709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 139709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindConstant(rsc, pv, slot, a); 140a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchouk} 141a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchouk 142a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchoukstatic void SC_BindFragmentConstant(ProgramFragment *pf, uint32_t slot, Allocation *a) { 143709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 144709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindConstant(rsc, pf, slot, a); 145a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchouk} 146a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchouk 14787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindSampler(ProgramFragment *pf, uint32_t slot, Sampler *s) { 148709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 149709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindSampler(rsc, pf, slot, s); 15087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 15187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 15287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindProgramStore(ProgramStore *ps) { 153709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 154709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindProgramStore(rsc, ps); 15587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 15687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 15787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindProgramFragment(ProgramFragment *pf) { 158709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 159709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindProgramFragment(rsc, pf); 16087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 16187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 16287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindProgramVertex(ProgramVertex *pv) { 163709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 164709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindProgramVertex(rsc, pv); 16587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 16687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 16787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindProgramRaster(ProgramRaster *pr) { 168709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 169709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindProgramRaster(rsc, pr); 17087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 17187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 17287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindFrameBufferObjectColorTarget(Allocation *a, uint32_t slot) { 173709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 174709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindFrameBufferObjectColorTarget(rsc, a, slot); 17587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 17687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 17787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindFrameBufferObjectDepthTarget(Allocation *a) { 178709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 179709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindFrameBufferObjectDepthTarget(rsc, a); 18087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 18187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 18287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_ClearFrameBufferObjectColorTarget(uint32_t slot) { 183709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 184709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrClearFrameBufferObjectColorTarget(rsc, slot); 18587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 18687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 18787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_ClearFrameBufferObjectDepthTarget(Context *, Script *) { 188709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 189709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrClearFrameBufferObjectDepthTarget(rsc); 19087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 19187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 19287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_ClearFrameBufferObjectTargets(Context *, Script *) { 193709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 194709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrClearFrameBufferObjectTargets(rsc); 19587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 19687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 19787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 19887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 19987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// VP 20087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 20187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 20287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_VpLoadProjectionMatrix(const rsc_Matrix *m) { 203709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 204709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrVpLoadProjectionMatrix(rsc, m); 20587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 20687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 20787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_VpLoadModelMatrix(const rsc_Matrix *m) { 208709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 209709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrVpLoadModelMatrix(rsc, m); 21087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 21187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 21287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_VpLoadTextureMatrix(const rsc_Matrix *m) { 213709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 214709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrVpLoadTextureMatrix(rsc, m); 21587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 21687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 21787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_PfConstantColor(ProgramFragment *pf, float r, float g, float b, float a) { 218709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 219709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrPfConstantColor(rsc, pf, r, g, b, a); 22087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 22187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 22287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_VpGetProjectionMatrix(rsc_Matrix *m) { 223709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 224709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrVpGetProjectionMatrix(rsc, m); 22587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 22687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 22787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 22887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 22987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// Drawing 23087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 23187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 23287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawQuadTexCoords(float x1, float y1, float z1, float u1, float v1, 23387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float x2, float y2, float z2, float u2, float v2, 23487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float x3, float y3, float z3, float u3, float v3, 23587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float x4, float y4, float z4, float u4, float v4) { 236709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 237414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 238414a46166126da6864258bd25ff183f9a3c6261dStephen Hines if (!rsc->setupCheck()) { 239414a46166126da6864258bd25ff183f9a3c6261dStephen Hines return; 240414a46166126da6864258bd25ff183f9a3c6261dStephen Hines } 241414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 242414a46166126da6864258bd25ff183f9a3c6261dStephen Hines RsdHal *dc = (RsdHal *)rsc->mHal.drv; 243414a46166126da6864258bd25ff183f9a3c6261dStephen Hines if (!dc->gl.shaderCache->setup(rsc)) { 244414a46166126da6864258bd25ff183f9a3c6261dStephen Hines return; 245414a46166126da6864258bd25ff183f9a3c6261dStephen Hines } 246414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 247414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //ALOGE("Quad"); 248414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //ALOGE("%4.2f, %4.2f, %4.2f", x1, y1, z1); 249414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //ALOGE("%4.2f, %4.2f, %4.2f", x2, y2, z2); 250414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //ALOGE("%4.2f, %4.2f, %4.2f", x3, y3, z3); 251414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //ALOGE("%4.2f, %4.2f, %4.2f", x4, y4, z4); 252414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 253414a46166126da6864258bd25ff183f9a3c6261dStephen Hines float vtx[] = {x1,y1,z1, x2,y2,z2, x3,y3,z3, x4,y4,z4}; 254414a46166126da6864258bd25ff183f9a3c6261dStephen Hines const float tex[] = {u1,v1, u2,v2, u3,v3, u4,v4}; 255414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 256414a46166126da6864258bd25ff183f9a3c6261dStephen Hines RsdVertexArray::Attrib attribs[2]; 257414a46166126da6864258bd25ff183f9a3c6261dStephen Hines attribs[0].set(GL_FLOAT, 3, 12, false, (uint32_t)vtx, "ATTRIB_position"); 258414a46166126da6864258bd25ff183f9a3c6261dStephen Hines attribs[1].set(GL_FLOAT, 2, 8, false, (uint32_t)tex, "ATTRIB_texture0"); 259414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 260414a46166126da6864258bd25ff183f9a3c6261dStephen Hines RsdVertexArray va(attribs, 2); 261414a46166126da6864258bd25ff183f9a3c6261dStephen Hines va.setup(rsc); 262414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 263414a46166126da6864258bd25ff183f9a3c6261dStephen Hines RSD_CALL_GL(glDrawArrays, GL_TRIANGLE_FAN, 0, 4); 26487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 26587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 26687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawQuad(float x1, float y1, float z1, 26787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float x2, float y2, float z2, 26887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float x3, float y3, float z3, 26987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float x4, float y4, float z4) { 270414a46166126da6864258bd25ff183f9a3c6261dStephen Hines SC_DrawQuadTexCoords(x1, y1, z1, 0, 1, 271414a46166126da6864258bd25ff183f9a3c6261dStephen Hines x2, y2, z2, 1, 1, 272414a46166126da6864258bd25ff183f9a3c6261dStephen Hines x3, y3, z3, 1, 0, 273414a46166126da6864258bd25ff183f9a3c6261dStephen Hines x4, y4, z4, 0, 0); 27487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 27587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 27687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawSpriteScreenspace(float x, float y, float z, float w, float h) { 277709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 278414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 279414a46166126da6864258bd25ff183f9a3c6261dStephen Hines ObjectBaseRef<const ProgramVertex> tmp(rsc->getProgramVertex()); 280414a46166126da6864258bd25ff183f9a3c6261dStephen Hines rsc->setProgramVertex(rsc->getDefaultProgramVertex()); 281414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //rsc->setupCheck(); 282414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 283414a46166126da6864258bd25ff183f9a3c6261dStephen Hines //GLint crop[4] = {0, h, w, -h}; 284414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 285414a46166126da6864258bd25ff183f9a3c6261dStephen Hines float sh = rsc->getHeight(); 286414a46166126da6864258bd25ff183f9a3c6261dStephen Hines 287414a46166126da6864258bd25ff183f9a3c6261dStephen Hines SC_DrawQuad(x, sh - y, z, 288414a46166126da6864258bd25ff183f9a3c6261dStephen Hines x+w, sh - y, z, 289414a46166126da6864258bd25ff183f9a3c6261dStephen Hines x+w, sh - (y+h), z, 290414a46166126da6864258bd25ff183f9a3c6261dStephen Hines x, sh - (y+h), z); 291414a46166126da6864258bd25ff183f9a3c6261dStephen Hines rsc->setProgramVertex((ProgramVertex *)tmp.get()); 29287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 29387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 29487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawRect(float x1, float y1, float x2, float y2, float z) { 295414a46166126da6864258bd25ff183f9a3c6261dStephen Hines SC_DrawQuad(x1, y2, z, x2, y2, z, x2, y1, z, x1, y1, z); 29687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 29787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 2989e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Samsstatic void SC_DrawPath(Path *p) { 299709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 3009e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams rsdPathDraw(rsc, p); 3019e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams} 3029e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams 30387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawMesh(Mesh *m) { 304709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 305709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrDrawMesh(rsc, m); 30687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 30787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 30887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawMeshPrimitive(Mesh *m, uint32_t primIndex) { 309709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 310709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrDrawMeshPrimitive(rsc, m, primIndex); 31187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 31287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 31387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawMeshPrimitiveRange(Mesh *m, uint32_t primIndex, uint32_t start, uint32_t len) { 314709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 315709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrDrawMeshPrimitiveRange(rsc, m, primIndex, start, len); 31687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 31787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 31887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_MeshComputeBoundingBox(Mesh *m, 31987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float *minX, float *minY, float *minZ, 32087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams float *maxX, float *maxY, float *maxZ) { 321709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 322709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrMeshComputeBoundingBox(rsc, m, minX, minY, minZ, maxX, maxY, maxZ); 32387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 32487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 32587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 32687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 32787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 32887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// 32987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 33087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 33187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 33287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_Color(float r, float g, float b, float a) { 333709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 334709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrColor(rsc, r, g, b, a); 33587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 33687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 33787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_Finish() { 338709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 339653b53ebcd2bedc94ac486080d2e82e1920232e3Alex Sakhartchouk rsdGLFinish(rsc); 34087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 34187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 34287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_ClearColor(float r, float g, float b, float a) { 343709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 344709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrPrepareClear(rsc); 345653b53ebcd2bedc94ac486080d2e82e1920232e3Alex Sakhartchouk rsdGLClearColor(rsc, r, g, b, a); 34687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 34787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 34887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_ClearDepth(float v) { 349709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 350709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrPrepareClear(rsc); 351653b53ebcd2bedc94ac486080d2e82e1920232e3Alex Sakhartchouk rsdGLClearDepth(rsc, v); 35287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 35387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 35487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic uint32_t SC_GetWidth() { 355709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 356709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrGetWidth(rsc); 35787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 35887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 35987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic uint32_t SC_GetHeight() { 360709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 361709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrGetHeight(rsc); 36287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 36387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 36487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawTextAlloc(Allocation *a, int x, int y) { 365709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 366709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrDrawTextAlloc(rsc, a, x, y); 36787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 36887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 36987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_DrawText(const char *text, int x, int y) { 370709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 371709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrDrawText(rsc, text, x, y); 37287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 37387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 37487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_MeasureTextAlloc(Allocation *a, 37587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams int32_t *left, int32_t *right, int32_t *top, int32_t *bottom) { 376709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 377709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrMeasureTextAlloc(rsc, a, left, right, top, bottom); 37887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 37987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 38087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_MeasureText(const char *text, 38187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams int32_t *left, int32_t *right, int32_t *top, int32_t *bottom) { 382709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 383709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrMeasureText(rsc, text, left, right, top, bottom); 38487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 38587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 38687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_BindFont(Font *f) { 387709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 388709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrBindFont(rsc, f); 38987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 39087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 39187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_FontColor(float r, float g, float b, float a) { 392709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 393709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrFontColor(rsc, r, g, b, a); 39487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 39587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 39687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 39787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 39887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 39987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// 40087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 40187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 40287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_SetObject(ObjectBase **dst, ObjectBase * src) { 403709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 404709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrSetObject(rsc, dst, src); 40587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 40687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 40787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic void SC_ClearObject(ObjectBase **dst) { 408709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 409709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrClearObject(rsc, dst); 41087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 41187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 41287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic bool SC_IsObject(const ObjectBase *src) { 413709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 414709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrIsObject(rsc, src); 41587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 41687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 41787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 41887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 41987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 42087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic const Allocation * SC_GetAllocation(const void *ptr) { 421709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 422709a0978ae141198018ca9769f8d96292a8928e6Jason Sams const Script *sc = RsdCpuReference::getTlsScript(); 423807fdc4b6f3fb893015ee136565d6151bb2332d3Jason Sams return rsdScriptGetAllocationForPointer(rsc, sc, ptr); 42487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 42587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 426c500e74d0848b721bf01cf0ab344a6adb035c312Jason Samsstatic void SC_ForEach_SAA(Script *target, 427c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams Allocation *in, 428c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams Allocation *out) { 429709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 430709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrForEach(rsc, target, in, out, NULL, 0, NULL); 431c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams} 432c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams 433c500e74d0848b721bf01cf0ab344a6adb035c312Jason Samsstatic void SC_ForEach_SAAU(Script *target, 434c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams Allocation *in, 435c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams Allocation *out, 436c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams const void *usr) { 437709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 438709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrForEach(rsc, target, in, out, usr, 0, NULL); 43987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 44087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 441c500e74d0848b721bf01cf0ab344a6adb035c312Jason Samsstatic void SC_ForEach_SAAUS(Script *target, 442c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams Allocation *in, 443c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams Allocation *out, 444c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams const void *usr, 445c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams const RsScriptCall *call) { 446709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 447709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrForEach(rsc, target, in, out, usr, 0, call); 44887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 44987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 450c500e74d0848b721bf01cf0ab344a6adb035c312Jason Samsstatic void SC_ForEach_SAAUL(Script *target, 451c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams Allocation *in, 452c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams Allocation *out, 453c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams const void *usr, 454c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams uint32_t usrLen) { 455709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 456709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrForEach(rsc, target, in, out, usr, usrLen, NULL); 457c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams} 458c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams 459c500e74d0848b721bf01cf0ab344a6adb035c312Jason Samsstatic void SC_ForEach_SAAULS(Script *target, 460c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams Allocation *in, 461c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams Allocation *out, 462c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams const void *usr, 463c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams uint32_t usrLen, 464c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams const RsScriptCall *call) { 465709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 466709a0978ae141198018ca9769f8d96292a8928e6Jason Sams rsrForEach(rsc, target, in, out, usr, usrLen, call); 467c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams} 468c500e74d0848b721bf01cf0ab344a6adb035c312Jason Sams 46987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 47087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 47187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 47287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// Time routines 47387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 47487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 47587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic float SC_GetDt() { 476709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 477709a0978ae141198018ca9769f8d96292a8928e6Jason Sams const Script *sc = RsdCpuReference::getTlsScript(); 47887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams return rsrGetDt(rsc, sc); 47987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 48087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 48187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samstime_t SC_Time(time_t *timer) { 482709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 483709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrTime(rsc, timer); 48487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 48587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 48687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samstm* SC_LocalTime(tm *local, time_t *timer) { 487709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 488709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrLocalTime(rsc, local, timer); 48987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 49087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 49187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsint64_t SC_UptimeMillis() { 492709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 493709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrUptimeMillis(rsc); 49487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 49587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 49687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsint64_t SC_UptimeNanos() { 497709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 498709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrUptimeNanos(rsc); 49987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 50087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 50187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 50287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// Message routines 50387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 50487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 50587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic uint32_t SC_ToClient2(int cmdID, void *data, int len) { 506709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 507709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrToClient(rsc, cmdID, data, len); 50887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 50987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 51087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic uint32_t SC_ToClient(int cmdID) { 511709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 512709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrToClient(rsc, cmdID, NULL, 0); 51387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 51487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 51587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic uint32_t SC_ToClientBlocking2(int cmdID, void *data, int len) { 516709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 517709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrToClientBlocking(rsc, cmdID, data, len); 51887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 51987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 52087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samsstatic uint32_t SC_ToClientBlocking(int cmdID) { 521709a0978ae141198018ca9769f8d96292a8928e6Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 522709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return rsrToClientBlocking(rsc, cmdID, NULL, 0); 52387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 52487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 52587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 5265261a5ea546ff358edd5aac7602fc4132434f481Jason Samsstatic void * ElementAt1D(Allocation *a, RsDataType dt, uint32_t vecSize, uint32_t x) { 5275261a5ea546ff358edd5aac7602fc4132434f481Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 5285261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const Type *t = a->getType(); 5295261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const Element *e = t->getElement(); 5305261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 5315261a5ea546ff358edd5aac7602fc4132434f481Jason Sams char buf[256]; 5325261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (x >= t->getLODDimX(0)) { 5335261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Out range ElementAt X %i of %i", x, t->getLODDimX(0)); 5345261a5ea546ff358edd5aac7602fc4132434f481Jason Sams rsc->setError(RS_ERROR_FATAL_UNKNOWN, buf); 5355261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return NULL; 5365261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 5375261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 5385261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (vecSize != e->getVectorSize()) { 5395261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Vector size mismatch for ElementAt %i of %i", vecSize, e->getVectorSize()); 5405261a5ea546ff358edd5aac7602fc4132434f481Jason Sams rsc->setError(RS_ERROR_FATAL_UNKNOWN, buf); 5415261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return NULL; 5425261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 5435261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 5445261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (dt != e->getType()) { 5455261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Data type mismatch for ElementAt %i of %i", dt, e->getType()); 5465261a5ea546ff358edd5aac7602fc4132434f481Jason Sams rsc->setError(RS_ERROR_FATAL_UNKNOWN, buf); 5475261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return NULL; 5485261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 5495261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 5505261a5ea546ff358edd5aac7602fc4132434f481Jason Sams uint8_t *p = (uint8_t *)a->mHal.drvState.lod[0].mallocPtr; 5515261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const uint32_t eSize = e->getSizeBytes(); 5525261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return &p[(eSize * x)]; 5535261a5ea546ff358edd5aac7602fc4132434f481Jason Sams} 5545261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 5555261a5ea546ff358edd5aac7602fc4132434f481Jason Samsstatic void * ElementAt2D(Allocation *a, RsDataType dt, uint32_t vecSize, uint32_t x, uint32_t y) { 5565261a5ea546ff358edd5aac7602fc4132434f481Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 5575261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const Type *t = a->getType(); 5585261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const Element *e = t->getElement(); 5595261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 5605261a5ea546ff358edd5aac7602fc4132434f481Jason Sams char buf[256]; 5615261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (x >= t->getLODDimX(0)) { 5625261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Out range ElementAt X %i of %i", x, t->getLODDimX(0)); 5635261a5ea546ff358edd5aac7602fc4132434f481Jason Sams rsc->setError(RS_ERROR_FATAL_UNKNOWN, buf); 5645261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return NULL; 5655261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 5665261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 5675261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (y >= t->getLODDimY(0)) { 5685261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Out range ElementAt Y %i of %i", y, t->getLODDimY(0)); 5695261a5ea546ff358edd5aac7602fc4132434f481Jason Sams rsc->setError(RS_ERROR_FATAL_UNKNOWN, buf); 5705261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return NULL; 5715261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 5725261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 5735261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (vecSize != e->getVectorSize()) { 5745261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Vector size mismatch for ElementAt %i of %i", vecSize, e->getVectorSize()); 5755261a5ea546ff358edd5aac7602fc4132434f481Jason Sams rsc->setError(RS_ERROR_FATAL_UNKNOWN, buf); 5765261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return NULL; 5775261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 5785261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 5795261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (dt != e->getType()) { 5805261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Data type mismatch for ElementAt %i of %i", dt, e->getType()); 5815261a5ea546ff358edd5aac7602fc4132434f481Jason Sams rsc->setError(RS_ERROR_FATAL_UNKNOWN, buf); 5825261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return NULL; 5835261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 5845261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 5855261a5ea546ff358edd5aac7602fc4132434f481Jason Sams uint8_t *p = (uint8_t *)a->mHal.drvState.lod[0].mallocPtr; 5865261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const uint32_t eSize = e->getSizeBytes(); 5875261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const uint32_t stride = a->mHal.drvState.lod[0].stride; 5885261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return &p[(eSize * x) + (y * stride)]; 5895261a5ea546ff358edd5aac7602fc4132434f481Jason Sams} 5905261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 5915261a5ea546ff358edd5aac7602fc4132434f481Jason Samsstatic void * ElementAt3D(Allocation *a, RsDataType dt, uint32_t vecSize, uint32_t x, uint32_t y, uint32_t z) { 5925261a5ea546ff358edd5aac7602fc4132434f481Jason Sams Context *rsc = RsdCpuReference::getTlsContext(); 5935261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const Type *t = a->getType(); 5945261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const Element *e = t->getElement(); 5955261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 5965261a5ea546ff358edd5aac7602fc4132434f481Jason Sams char buf[256]; 5975261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (x >= t->getLODDimX(0)) { 5985261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Out range ElementAt X %i of %i", x, t->getLODDimX(0)); 5995261a5ea546ff358edd5aac7602fc4132434f481Jason Sams rsc->setError(RS_ERROR_FATAL_UNKNOWN, buf); 6005261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return NULL; 6015261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 6025261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 6035261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (y >= t->getLODDimY(0)) { 6045261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Out range ElementAt Y %i of %i", y, t->getLODDimY(0)); 6055261a5ea546ff358edd5aac7602fc4132434f481Jason Sams rsc->setError(RS_ERROR_FATAL_UNKNOWN, buf); 6065261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return NULL; 6075261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 6085261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 6095261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (z >= t->getLODDimZ(0)) { 6105261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Out range ElementAt Z %i of %i", z, t->getLODDimZ(0)); 6115261a5ea546ff358edd5aac7602fc4132434f481Jason Sams rsc->setError(RS_ERROR_FATAL_UNKNOWN, buf); 6125261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return NULL; 6135261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 6145261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 6155261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (vecSize != e->getVectorSize()) { 6165261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Vector size mismatch for ElementAt %i of %i", vecSize, e->getVectorSize()); 6175261a5ea546ff358edd5aac7602fc4132434f481Jason Sams rsc->setError(RS_ERROR_FATAL_UNKNOWN, buf); 6185261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return NULL; 6195261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 6205261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 6215261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (dt != e->getType()) { 6225261a5ea546ff358edd5aac7602fc4132434f481Jason Sams sprintf(buf, "Data type mismatch for ElementAt %i of %i", dt, e->getType()); 6235261a5ea546ff358edd5aac7602fc4132434f481Jason Sams rsc->setError(RS_ERROR_FATAL_UNKNOWN, buf); 6245261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return NULL; 6255261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 6265261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 6275261a5ea546ff358edd5aac7602fc4132434f481Jason Sams uint8_t *p = (uint8_t *)a->mHal.drvState.lod[0].mallocPtr; 6285261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const uint32_t eSize = e->getSizeBytes(); 6295261a5ea546ff358edd5aac7602fc4132434f481Jason Sams const uint32_t stride = a->mHal.drvState.lod[0].stride; 6305261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return &p[(eSize * x) + (y * stride)]; 6315261a5ea546ff358edd5aac7602fc4132434f481Jason Sams} 6325261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 6335261a5ea546ff358edd5aac7602fc4132434f481Jason Sams#define ELEMENT_AT(T, DT, VS) \ 6345261a5ea546ff358edd5aac7602fc4132434f481Jason Sams static void SC_SetElementAt1_##T(Allocation *a, T val, uint32_t x) { \ 6355261a5ea546ff358edd5aac7602fc4132434f481Jason Sams void *r = ElementAt1D(a, DT, VS, x); \ 6365261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (r != NULL) ((T *)r)[0] = val; \ 6375261a5ea546ff358edd5aac7602fc4132434f481Jason Sams else ALOGE("Error from %s", __PRETTY_FUNCTION__); \ 6385261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } \ 6395261a5ea546ff358edd5aac7602fc4132434f481Jason Sams static void SC_SetElementAt2_##T(Allocation * a, T val, uint32_t x, uint32_t y) { \ 6405261a5ea546ff358edd5aac7602fc4132434f481Jason Sams void *r = ElementAt2D(a, DT, VS, x, y); \ 6415261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (r != NULL) ((T *)r)[0] = val; \ 6425261a5ea546ff358edd5aac7602fc4132434f481Jason Sams else ALOGE("Error from %s", __PRETTY_FUNCTION__); \ 6435261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } \ 6445261a5ea546ff358edd5aac7602fc4132434f481Jason Sams static void SC_SetElementAt3_##T(Allocation * a, T val, uint32_t x, uint32_t y, uint32_t z) { \ 6455261a5ea546ff358edd5aac7602fc4132434f481Jason Sams void *r = ElementAt3D(a, DT, VS, x, y, z); \ 6465261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (r != NULL) ((T *)r)[0] = val; \ 6475261a5ea546ff358edd5aac7602fc4132434f481Jason Sams else ALOGE("Error from %s", __PRETTY_FUNCTION__); \ 6485261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } \ 6495261a5ea546ff358edd5aac7602fc4132434f481Jason Sams static T SC_GetElementAt1_##T(Allocation * a, uint32_t x) { \ 6505261a5ea546ff358edd5aac7602fc4132434f481Jason Sams void *r = ElementAt1D(a, DT, VS, x); \ 6515261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (r != NULL) return ((T *)r)[0]; \ 6525261a5ea546ff358edd5aac7602fc4132434f481Jason Sams ALOGE("Error from %s", __PRETTY_FUNCTION__); \ 6535261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return 0; \ 6545261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } \ 6555261a5ea546ff358edd5aac7602fc4132434f481Jason Sams static T SC_GetElementAt2_##T(Allocation * a, uint32_t x, uint32_t y) { \ 6565261a5ea546ff358edd5aac7602fc4132434f481Jason Sams void *r = ElementAt2D(a, DT, VS, x, y); \ 6575261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (r != NULL) return ((T *)r)[0]; \ 6585261a5ea546ff358edd5aac7602fc4132434f481Jason Sams ALOGE("Error from %s", __PRETTY_FUNCTION__); \ 6595261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return 0; \ 6605261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } \ 6615261a5ea546ff358edd5aac7602fc4132434f481Jason Sams static T SC_GetElementAt3_##T(Allocation * a, uint32_t x, uint32_t y, uint32_t z) { \ 6625261a5ea546ff358edd5aac7602fc4132434f481Jason Sams void *r = ElementAt3D(a, DT, VS, x, y, z); \ 6635261a5ea546ff358edd5aac7602fc4132434f481Jason Sams if (r != NULL) return ((T *)r)[0]; \ 6645261a5ea546ff358edd5aac7602fc4132434f481Jason Sams ALOGE("Error from %s", __PRETTY_FUNCTION__); \ 6655261a5ea546ff358edd5aac7602fc4132434f481Jason Sams return 0; \ 6665261a5ea546ff358edd5aac7602fc4132434f481Jason Sams } 6675261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 6685261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(char, RS_TYPE_SIGNED_8, 1) 6695261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(char2, RS_TYPE_SIGNED_8, 2) 6705261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(char3, RS_TYPE_SIGNED_8, 3) 6715261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(char4, RS_TYPE_SIGNED_8, 4) 6725261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uchar, RS_TYPE_UNSIGNED_8, 1) 6735261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uchar2, RS_TYPE_UNSIGNED_8, 2) 6745261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uchar3, RS_TYPE_UNSIGNED_8, 3) 6755261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uchar4, RS_TYPE_UNSIGNED_8, 4) 6765261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(short, RS_TYPE_SIGNED_16, 1) 6775261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(short2, RS_TYPE_SIGNED_16, 2) 6785261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(short3, RS_TYPE_SIGNED_16, 3) 6795261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(short4, RS_TYPE_SIGNED_16, 4) 6805261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ushort, RS_TYPE_UNSIGNED_16, 1) 6815261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ushort2, RS_TYPE_UNSIGNED_16, 2) 6825261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ushort3, RS_TYPE_UNSIGNED_16, 3) 6835261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ushort4, RS_TYPE_UNSIGNED_16, 4) 6845261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(int, RS_TYPE_SIGNED_32, 1) 6855261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(int2, RS_TYPE_SIGNED_32, 2) 6865261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(int3, RS_TYPE_SIGNED_32, 3) 6875261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(int4, RS_TYPE_SIGNED_32, 4) 6885261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uint, RS_TYPE_UNSIGNED_32, 1) 6895261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uint2, RS_TYPE_UNSIGNED_32, 2) 6905261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uint3, RS_TYPE_UNSIGNED_32, 3) 6915261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(uint4, RS_TYPE_UNSIGNED_32, 4) 6925261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(long, RS_TYPE_SIGNED_64, 1) 6935261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(long2, RS_TYPE_SIGNED_64, 2) 6945261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(long3, RS_TYPE_SIGNED_64, 3) 6955261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(long4, RS_TYPE_SIGNED_64, 4) 6965261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ulong, RS_TYPE_UNSIGNED_64, 1) 6975261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ulong2, RS_TYPE_UNSIGNED_64, 2) 6985261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ulong3, RS_TYPE_UNSIGNED_64, 3) 6995261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(ulong4, RS_TYPE_UNSIGNED_64, 4) 7005261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(float, RS_TYPE_FLOAT_32, 1) 7015261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(float2, RS_TYPE_FLOAT_32, 2) 7025261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(float3, RS_TYPE_FLOAT_32, 3) 7035261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(float4, RS_TYPE_FLOAT_32, 4) 7045261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(double, RS_TYPE_FLOAT_64, 1) 7055261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(double2, RS_TYPE_FLOAT_64, 2) 7065261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(double3, RS_TYPE_FLOAT_64, 3) 7075261a5ea546ff358edd5aac7602fc4132434f481Jason SamsELEMENT_AT(double4, RS_TYPE_FLOAT_64, 4) 7085261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7095261a5ea546ff358edd5aac7602fc4132434f481Jason Sams#undef ELEMENT_AT 71087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 71187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 71287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// Stub implementation 71387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams////////////////////////////////////////////////////////////////////////////// 71487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 71587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// llvm name mangling ref 71687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// <builtin-type> ::= v # void 71787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= b # bool 71887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= c # char 71987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= a # signed char 72087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= h # unsigned char 72187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= s # short 72287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= t # unsigned short 72387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= i # int 72487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= j # unsigned int 72587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= l # long 72687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= m # unsigned long 72787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= x # long long, __int64 72887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= y # unsigned long long, __int64 72987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= f # float 73087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams// ::= d # double 73187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 732709a0978ae141198018ca9769f8d96292a8928e6Jason Samsstatic RsdCpuReference::CpuSymbol gSyms[] = { 7335261a5ea546ff358edd5aac7602fc4132434f481Jason Sams // Debug runtime 7345261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_uchar13rs_allocationcj", (void *)&SC_GetElementAt1_uchar, true }, 7355261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_uchar213rs_allocationj", (void *)&SC_GetElementAt1_uchar2, true }, 7365261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_uchar313rs_allocationj", (void *)&SC_GetElementAt1_uchar3, true }, 7375261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_uchar413rs_allocationj", (void *)&SC_GetElementAt1_uchar4, true }, 7385261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_uchar13rs_allocationjj", (void *)&SC_GetElementAt2_uchar, true }, 7395261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_uchar213rs_allocationjj", (void *)&SC_GetElementAt2_uchar2, true }, 7405261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_uchar313rs_allocationjj", (void *)&SC_GetElementAt2_uchar3, true }, 7415261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_uchar413rs_allocationjj", (void *)&SC_GetElementAt2_uchar4, true }, 7425261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_uchar13rs_allocationjjj", (void *)&SC_GetElementAt3_uchar, true }, 7435261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_uchar213rs_allocationjjj", (void *)&SC_GetElementAt3_uchar2, true }, 7445261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_uchar313rs_allocationjjj", (void *)&SC_GetElementAt3_uchar3, true }, 7455261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_uchar413rs_allocationjjj", (void *)&SC_GetElementAt3_uchar4, true }, 7465261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7475261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsGetElementAt_char13rs_allocationj", (void *)&SC_GetElementAt1_char, true }, 7485261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_char213rs_allocationj", (void *)&SC_GetElementAt1_char2, true }, 7495261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_char313rs_allocationj", (void *)&SC_GetElementAt1_char3, true }, 7505261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_char413rs_allocationj", (void *)&SC_GetElementAt1_char4, true }, 7515261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsGetElementAt_char13rs_allocationjj", (void *)&SC_GetElementAt2_char, true }, 7525261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_char213rs_allocationjj", (void *)&SC_GetElementAt2_char2, true }, 7535261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_char313rs_allocationjj", (void *)&SC_GetElementAt2_char3, true }, 7545261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_char413rs_allocationjj", (void *)&SC_GetElementAt2_char4, true }, 7555261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsGetElementAt_char13rs_allocationjjj", (void *)&SC_GetElementAt3_char, true }, 7565261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_char213rs_allocationjjj", (void *)&SC_GetElementAt3_char2, true }, 7575261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_char313rs_allocationjjj", (void *)&SC_GetElementAt3_char3, true }, 7585261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_char413rs_allocationjjj", (void *)&SC_GetElementAt3_char4, true }, 7595261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7605261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_ushort13rs_allocationcj", (void *)&SC_GetElementAt1_ushort, true }, 7615261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsGetElementAt_ushort213rs_allocationj", (void *)&SC_GetElementAt1_ushort2, true }, 7625261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsGetElementAt_ushort313rs_allocationj", (void *)&SC_GetElementAt1_ushort3, true }, 7635261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsGetElementAt_ushort413rs_allocationj", (void *)&SC_GetElementAt1_ushort4, true }, 7645261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_ushort13rs_allocationjj", (void *)&SC_GetElementAt2_ushort, true }, 7655261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsGetElementAt_ushort213rs_allocationjj", (void *)&SC_GetElementAt2_ushort2, true }, 7665261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsGetElementAt_ushort313rs_allocationjj", (void *)&SC_GetElementAt2_ushort3, true }, 7675261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsGetElementAt_ushort413rs_allocationjj", (void *)&SC_GetElementAt2_ushort4, true }, 7685261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_ushort13rs_allocationjjj", (void *)&SC_GetElementAt3_ushort, true }, 7695261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsGetElementAt_ushort213rs_allocationjjj", (void *)&SC_GetElementAt3_ushort2, true }, 7705261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsGetElementAt_ushort313rs_allocationjjj", (void *)&SC_GetElementAt3_ushort3, true }, 7715261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsGetElementAt_ushort413rs_allocationjjj", (void *)&SC_GetElementAt3_ushort4, true }, 7725261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7735261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_short13rs_allocationj", (void *)&SC_GetElementAt1_short, true }, 7745261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_short213rs_allocationj", (void *)&SC_GetElementAt1_short2, true }, 7755261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_short313rs_allocationj", (void *)&SC_GetElementAt1_short3, true }, 7765261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_short413rs_allocationj", (void *)&SC_GetElementAt1_short4, true }, 7775261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_short13rs_allocationjj", (void *)&SC_GetElementAt2_short, true }, 7785261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_short213rs_allocationjj", (void *)&SC_GetElementAt2_short2, true }, 7795261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_short313rs_allocationjj", (void *)&SC_GetElementAt2_short3, true }, 7805261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_short413rs_allocationjj", (void *)&SC_GetElementAt2_short4, true }, 7815261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_short13rs_allocationjjj", (void *)&SC_GetElementAt3_short, true }, 7825261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_short213rs_allocationjjj", (void *)&SC_GetElementAt3_short2, true }, 7835261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_short313rs_allocationjjj", (void *)&SC_GetElementAt3_short3, true }, 7845261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_short413rs_allocationjjj", (void *)&SC_GetElementAt3_short4, true }, 7855261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7865261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsGetElementAt_uint13rs_allocationcj", (void *)&SC_GetElementAt1_uint, true }, 7875261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_uint213rs_allocationj", (void *)&SC_GetElementAt1_uint2, true }, 7885261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_uint313rs_allocationj", (void *)&SC_GetElementAt1_uint3, true }, 7895261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_uint413rs_allocationj", (void *)&SC_GetElementAt1_uint4, true }, 7905261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsGetElementAt_uint13rs_allocationjj", (void *)&SC_GetElementAt2_uint, true }, 7915261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_uint213rs_allocationjj", (void *)&SC_GetElementAt2_uint2, true }, 7925261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_uint313rs_allocationjj", (void *)&SC_GetElementAt2_uint3, true }, 7935261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_uint413rs_allocationjj", (void *)&SC_GetElementAt2_uint4, true }, 7945261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsGetElementAt_uint13rs_allocationjjj", (void *)&SC_GetElementAt3_uint, true }, 7955261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_uint213rs_allocationjjj", (void *)&SC_GetElementAt3_uint2, true }, 7965261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_uint313rs_allocationjjj", (void *)&SC_GetElementAt3_uint3, true }, 7975261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_uint413rs_allocationjjj", (void *)&SC_GetElementAt3_uint4, true }, 7985261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 7995261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z18rsGetElementAt_int13rs_allocationj", (void *)&SC_GetElementAt1_int, true }, 8005261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsGetElementAt_int213rs_allocationj", (void *)&SC_GetElementAt1_int2, true }, 8015261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsGetElementAt_int313rs_allocationj", (void *)&SC_GetElementAt1_int3, true }, 8025261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsGetElementAt_int413rs_allocationj", (void *)&SC_GetElementAt1_int4, true }, 8035261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z18rsGetElementAt_int13rs_allocationjj", (void *)&SC_GetElementAt2_int, true }, 8045261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsGetElementAt_int213rs_allocationjj", (void *)&SC_GetElementAt2_int2, true }, 8055261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsGetElementAt_int313rs_allocationjj", (void *)&SC_GetElementAt2_int3, true }, 8065261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsGetElementAt_int413rs_allocationjj", (void *)&SC_GetElementAt2_int4, true }, 8075261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z18rsGetElementAt_int13rs_allocationjjj", (void *)&SC_GetElementAt3_int, true }, 8085261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsGetElementAt_int213rs_allocationjjj", (void *)&SC_GetElementAt3_int2, true }, 8095261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsGetElementAt_int313rs_allocationjjj", (void *)&SC_GetElementAt3_int3, true }, 8105261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsGetElementAt_int413rs_allocationjjj", (void *)&SC_GetElementAt3_int4, true }, 8115261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 8125261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_ulong13rs_allocationcj", (void *)&SC_GetElementAt1_ulong, true }, 8135261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_ulong213rs_allocationj", (void *)&SC_GetElementAt1_ulong2, true }, 8145261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_ulong313rs_allocationj", (void *)&SC_GetElementAt1_ulong3, true }, 8155261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_ulong413rs_allocationj", (void *)&SC_GetElementAt1_ulong4, true }, 8165261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_ulong13rs_allocationjj", (void *)&SC_GetElementAt2_ulong, true }, 8175261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_ulong213rs_allocationjj", (void *)&SC_GetElementAt2_ulong2, true }, 8185261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_ulong313rs_allocationjj", (void *)&SC_GetElementAt2_ulong3, true }, 8195261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_ulong413rs_allocationjj", (void *)&SC_GetElementAt2_ulong4, true }, 8205261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_ulong13rs_allocationjjj", (void *)&SC_GetElementAt3_ulong, true }, 8215261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_ulong213rs_allocationjjj", (void *)&SC_GetElementAt3_ulong2, true }, 8225261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_ulong313rs_allocationjjj", (void *)&SC_GetElementAt3_ulong3, true }, 8235261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_ulong413rs_allocationjjj", (void *)&SC_GetElementAt3_ulong4, true }, 8245261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 8255261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsGetElementAt_long13rs_allocationj", (void *)&SC_GetElementAt1_long, true }, 8265261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_long213rs_allocationj", (void *)&SC_GetElementAt1_long2, true }, 8275261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_long313rs_allocationj", (void *)&SC_GetElementAt1_long3, true }, 8285261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_long413rs_allocationj", (void *)&SC_GetElementAt1_long4, true }, 8295261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsGetElementAt_long13rs_allocationjj", (void *)&SC_GetElementAt2_long, true }, 8305261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_long213rs_allocationjj", (void *)&SC_GetElementAt2_long2, true }, 8315261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_long313rs_allocationjj", (void *)&SC_GetElementAt2_long3, true }, 8325261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_long413rs_allocationjj", (void *)&SC_GetElementAt2_long4, true }, 8335261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsGetElementAt_long13rs_allocationjjj", (void *)&SC_GetElementAt3_long, true }, 8345261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_long213rs_allocationjjj", (void *)&SC_GetElementAt3_long2, true }, 8355261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_long313rs_allocationjjj", (void *)&SC_GetElementAt3_long3, true }, 8365261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_long413rs_allocationjjj", (void *)&SC_GetElementAt3_long4, true }, 8375261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 8385261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_float13rs_allocationcj", (void *)&SC_GetElementAt1_float, true }, 8395261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_float213rs_allocationj", (void *)&SC_GetElementAt1_float2, true }, 8405261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_float313rs_allocationj", (void *)&SC_GetElementAt1_float3, true }, 8415261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_float413rs_allocationj", (void *)&SC_GetElementAt1_float4, true }, 8425261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_float13rs_allocationjj", (void *)&SC_GetElementAt2_float, true }, 8435261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_float213rs_allocationjj", (void *)&SC_GetElementAt2_float2, true }, 8445261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_float313rs_allocationjj", (void *)&SC_GetElementAt2_float3, true }, 8455261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_float413rs_allocationjj", (void *)&SC_GetElementAt2_float4, true }, 8465261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsGetElementAt_float13rs_allocationjjj", (void *)&SC_GetElementAt3_float, true }, 8475261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_float213rs_allocationjjj", (void *)&SC_GetElementAt3_float2, true }, 8485261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_float313rs_allocationjjj", (void *)&SC_GetElementAt3_float3, true }, 8495261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_float413rs_allocationjjj", (void *)&SC_GetElementAt3_float4, true }, 8505261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 8515261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_double13rs_allocationcj", (void *)&SC_GetElementAt1_double, true }, 8525261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsGetElementAt_double213rs_allocationj", (void *)&SC_GetElementAt1_double2, true }, 8535261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsGetElementAt_double313rs_allocationj", (void *)&SC_GetElementAt1_double3, true }, 8545261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsGetElementAt_double413rs_allocationj", (void *)&SC_GetElementAt1_double4, true }, 8555261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_double13rs_allocationjj", (void *)&SC_GetElementAt2_double, true }, 8565261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsGetElementAt_double213rs_allocationjj", (void *)&SC_GetElementAt2_double2, true }, 8575261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsGetElementAt_double313rs_allocationjj", (void *)&SC_GetElementAt2_double3, true }, 8585261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsGetElementAt_double413rs_allocationjj", (void *)&SC_GetElementAt2_double4, true }, 8595261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsGetElementAt_double13rs_allocationjjj", (void *)&SC_GetElementAt3_double, true }, 8605261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsGetElementAt_double213rs_allocationjjj", (void *)&SC_GetElementAt3_double2, true }, 8615261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsGetElementAt_double313rs_allocationjjj", (void *)&SC_GetElementAt3_double3, true }, 8625261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsGetElementAt_double413rs_allocationjjj", (void *)&SC_GetElementAt3_double4, true }, 8635261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 8645261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 8655261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 8665261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_uchar13rs_allocationhj", (void *)&SC_SetElementAt1_uchar, true }, 8675261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_uchar213rs_allocationDv2_hj", (void *)&SC_SetElementAt1_uchar2, true }, 8685261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_uchar313rs_allocationDv3_hj", (void *)&SC_SetElementAt1_uchar3, true }, 8695261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_uchar413rs_allocationDv4_hj", (void *)&SC_SetElementAt1_uchar4, true }, 8705261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_uchar13rs_allocationhjj", (void *)&SC_SetElementAt2_uchar, true }, 8715261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_uchar213rs_allocationDv2_hjj", (void *)&SC_SetElementAt2_uchar2, true }, 8725261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_uchar313rs_allocationDv3_hjj", (void *)&SC_SetElementAt2_uchar3, true }, 8735261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_uchar413rs_allocationDv4_hjj", (void *)&SC_SetElementAt2_uchar4, true }, 8745261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_uchar13rs_allocationhjjj", (void *)&SC_SetElementAt3_uchar, true }, 8755261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_uchar213rs_allocationDv2_hjjj", (void *)&SC_SetElementAt3_uchar2, true }, 8765261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_uchar313rs_allocationDv3_hjjj", (void *)&SC_SetElementAt3_uchar3, true }, 8775261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_uchar413rs_allocationDv4_hjjj", (void *)&SC_SetElementAt3_uchar4, true }, 8785261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 8795261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsSetElementAt_char13rs_allocationcj", (void *)&SC_SetElementAt1_char, true }, 8805261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_char213rs_allocationDv2_cj", (void *)&SC_SetElementAt1_char2, true }, 8815261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_char313rs_allocationDv3_cj", (void *)&SC_SetElementAt1_char3, true }, 8825261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_char413rs_allocationDv4_cj", (void *)&SC_SetElementAt1_char4, true }, 8835261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsSetElementAt_char13rs_allocationcjj", (void *)&SC_SetElementAt2_char, true }, 8845261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_char213rs_allocationDv2_cjj", (void *)&SC_SetElementAt2_char2, true }, 8855261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_char313rs_allocationDv3_cjj", (void *)&SC_SetElementAt2_char3, true }, 8865261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_char413rs_allocationDv4_cjj", (void *)&SC_SetElementAt2_char4, true }, 8875261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsSetElementAt_char13rs_allocationcjjj", (void *)&SC_SetElementAt3_char, true }, 8885261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_char213rs_allocationDv2_cjjj", (void *)&SC_SetElementAt3_char2, true }, 8895261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_char313rs_allocationDv3_cjjj", (void *)&SC_SetElementAt3_char3, true }, 8905261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_char413rs_allocationDv4_cjjj", (void *)&SC_SetElementAt3_char4, true }, 8915261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 8925261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_ushort13rs_allocationht", (void *)&SC_SetElementAt1_ushort, true }, 8935261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsSetElementAt_ushort213rs_allocationDv2_tj", (void *)&SC_SetElementAt1_ushort2, true }, 8945261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsSetElementAt_ushort313rs_allocationDv3_tj", (void *)&SC_SetElementAt1_ushort3, true }, 8955261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsSetElementAt_ushort413rs_allocationDv4_tj", (void *)&SC_SetElementAt1_ushort4, true }, 8965261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_ushort13rs_allocationtjj", (void *)&SC_SetElementAt2_ushort, true }, 8975261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsSetElementAt_ushort213rs_allocationDv2_tjj", (void *)&SC_SetElementAt2_ushort2, true }, 8985261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsSetElementAt_ushort313rs_allocationDv3_tjj", (void *)&SC_SetElementAt2_ushort3, true }, 8995261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsSetElementAt_ushort413rs_allocationDv4_tjj", (void *)&SC_SetElementAt2_ushort4, true }, 9005261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_ushort13rs_allocationtjjj", (void *)&SC_SetElementAt3_ushort, true }, 9015261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsSetElementAt_ushort213rs_allocationDv2_tjjj", (void *)&SC_SetElementAt3_ushort2, true }, 9025261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsSetElementAt_ushort313rs_allocationDv3_tjjj", (void *)&SC_SetElementAt3_ushort3, true }, 9035261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsSetElementAt_ushort413rs_allocationDv4_tjjj", (void *)&SC_SetElementAt3_ushort4, true }, 9045261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 9055261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_short13rs_allocationsj", (void *)&SC_SetElementAt1_short, true }, 9065261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_short213rs_allocationDv2_sj", (void *)&SC_SetElementAt1_short2, true }, 9075261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_short313rs_allocationDv3_sj", (void *)&SC_SetElementAt1_short3, true }, 9085261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_short413rs_allocationDv4_sj", (void *)&SC_SetElementAt1_short4, true }, 9095261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_short13rs_allocationsjj", (void *)&SC_SetElementAt2_short, true }, 9105261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_short213rs_allocationDv2_sjj", (void *)&SC_SetElementAt2_short2, true }, 9115261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_short313rs_allocationDv3_sjj", (void *)&SC_SetElementAt2_short3, true }, 9125261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_short413rs_allocationDv4_sjj", (void *)&SC_SetElementAt2_short4, true }, 9135261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_short13rs_allocationsjjj", (void *)&SC_SetElementAt3_short, true }, 9145261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_short213rs_allocationDv2_sjjj", (void *)&SC_SetElementAt3_short2, true }, 9155261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_short313rs_allocationDv3_sjjj", (void *)&SC_SetElementAt3_short3, true }, 9165261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_short413rs_allocationDv4_sjjj", (void *)&SC_SetElementAt3_short4, true }, 9175261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 9185261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsSetElementAt_uint13rs_allocationjj", (void *)&SC_SetElementAt1_uint, true }, 9195261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_uint213rs_allocationDv2_jj", (void *)&SC_SetElementAt1_uint2, true }, 9205261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_uint313rs_allocationDv3_jj", (void *)&SC_SetElementAt1_uint3, true }, 9215261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_uint413rs_allocationDv4_jj", (void *)&SC_SetElementAt1_uint4, true }, 9225261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsSetElementAt_uint13rs_allocationjjj", (void *)&SC_SetElementAt2_uint, true }, 9235261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_uint213rs_allocationDv2_jjj", (void *)&SC_SetElementAt2_uint2, true }, 9245261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_uint313rs_allocationDv3_jjj", (void *)&SC_SetElementAt2_uint3, true }, 9255261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_uint413rs_allocationDv4_jjj", (void *)&SC_SetElementAt2_uint4, true }, 9265261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsSetElementAt_uint13rs_allocationjjjj", (void *)&SC_SetElementAt3_uint, true }, 9275261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_uint213rs_allocationDv2_jjjj", (void *)&SC_SetElementAt3_uint2, true }, 9285261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_uint313rs_allocationDv3_jjjj", (void *)&SC_SetElementAt3_uint3, true }, 9295261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_uint413rs_allocationDv4_jjjj", (void *)&SC_SetElementAt3_uint4, true }, 9305261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 9315261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsSetElementAt_int13rs_allocationij", (void *)&SC_SetElementAt1_int, true }, 9325261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsSetElementAt_int213rs_allocationDv2_ij", (void *)&SC_SetElementAt1_int2, true }, 9335261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsSetElementAt_int313rs_allocationDv3_ij", (void *)&SC_SetElementAt1_int3, true }, 9345261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsSetElementAt_int413rs_allocationDv4_ij", (void *)&SC_SetElementAt1_int4, true }, 9355261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z18rsSetElementAt_int13rs_allocationijj", (void *)&SC_SetElementAt2_int, true }, 9365261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsSetElementAt_int213rs_allocationDv2_ijj", (void *)&SC_SetElementAt2_int2, true }, 9375261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsSetElementAt_int313rs_allocationDv3_ijj", (void *)&SC_SetElementAt2_int3, true }, 9385261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsSetElementAt_int413rs_allocationDv4_ijj", (void *)&SC_SetElementAt2_int4, true }, 9395261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z18rsSetElementAt_int13rs_allocationijjj", (void *)&SC_SetElementAt3_int, true }, 9405261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsSetElementAt_int213rs_allocationDv2_ijjj", (void *)&SC_SetElementAt3_int2, true }, 9415261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsSetElementAt_int313rs_allocationDv3_ijjj", (void *)&SC_SetElementAt3_int3, true }, 9425261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsSetElementAt_int413rs_allocationDv4_ijjj", (void *)&SC_SetElementAt3_int4, true }, 9435261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 9445261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_ulong13rs_allocationmt", (void *)&SC_SetElementAt1_ulong, true }, 9455261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_ulong213rs_allocationDv2_mj", (void *)&SC_SetElementAt1_ulong2, true }, 9465261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_ulong313rs_allocationDv3_mj", (void *)&SC_SetElementAt1_ulong3, true }, 9475261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_ulong413rs_allocationDv4_mj", (void *)&SC_SetElementAt1_ulong4, true }, 9485261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_ulong13rs_allocationmjj", (void *)&SC_SetElementAt2_ulong, true }, 9495261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_ulong213rs_allocationDv2_mjj", (void *)&SC_SetElementAt2_ulong2, true }, 9505261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_ulong313rs_allocationDv3_mjj", (void *)&SC_SetElementAt2_ulong3, true }, 9515261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_ulong413rs_allocationDv4_mjj", (void *)&SC_SetElementAt2_ulong4, true }, 9525261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_ulong13rs_allocationmjjj", (void *)&SC_SetElementAt3_ulong, true }, 9535261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_ulong213rs_allocationDv2_mjjj", (void *)&SC_SetElementAt3_ulong2, true }, 9545261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_ulong313rs_allocationDv3_mjjj", (void *)&SC_SetElementAt3_ulong3, true }, 9555261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_ulong413rs_allocationDv4_mjjj", (void *)&SC_SetElementAt3_ulong4, true }, 9565261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 9575261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsSetElementAt_long13rs_allocationlj", (void *)&SC_SetElementAt1_long, true }, 9585261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_long213rs_allocationDv2_lj", (void *)&SC_SetElementAt1_long2, true }, 9595261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_long313rs_allocationDv3_lj", (void *)&SC_SetElementAt1_long3, true }, 9605261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_long413rs_allocationDv4_lj", (void *)&SC_SetElementAt1_long4, true }, 9615261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsSetElementAt_long13rs_allocationljj", (void *)&SC_SetElementAt2_long, true }, 9625261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_long213rs_allocationDv2_ljj", (void *)&SC_SetElementAt2_long2, true }, 9635261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_long313rs_allocationDv3_ljj", (void *)&SC_SetElementAt2_long3, true }, 9645261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_long413rs_allocationDv4_ljj", (void *)&SC_SetElementAt2_long4, true }, 9655261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z19rsSetElementAt_long13rs_allocationljjj", (void *)&SC_SetElementAt3_long, true }, 9665261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_long213rs_allocationDv2_ljjj", (void *)&SC_SetElementAt3_long2, true }, 9675261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_long313rs_allocationDv3_ljjj", (void *)&SC_SetElementAt3_long3, true }, 9685261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_long413rs_allocationDv4_ljjj", (void *)&SC_SetElementAt3_long4, true }, 9695261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 9705261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_float13rs_allocationft", (void *)&SC_SetElementAt1_float, true }, 9715261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_float213rs_allocationDv2_fj", (void *)&SC_SetElementAt1_float2, true }, 9725261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_float313rs_allocationDv3_fj", (void *)&SC_SetElementAt1_float3, true }, 9735261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_float413rs_allocationDv4_fj", (void *)&SC_SetElementAt1_float4, true }, 9745261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_float13rs_allocationfjj", (void *)&SC_SetElementAt2_float, true }, 9755261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_float213rs_allocationDv2_fjj", (void *)&SC_SetElementAt2_float2, true }, 9765261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_float313rs_allocationDv3_fjj", (void *)&SC_SetElementAt2_float3, true }, 9775261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_float413rs_allocationDv4_fjj", (void *)&SC_SetElementAt2_float4, true }, 9785261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z20rsSetElementAt_float13rs_allocationfjjj", (void *)&SC_SetElementAt3_float, true }, 9795261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_float213rs_allocationDv2_fjjj", (void *)&SC_SetElementAt3_float2, true }, 9805261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_float313rs_allocationDv3_fjjj", (void *)&SC_SetElementAt3_float3, true }, 9815261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_float413rs_allocationDv4_fjjj", (void *)&SC_SetElementAt3_float4, true }, 9825261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 9835261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_double13rs_allocationdt", (void *)&SC_SetElementAt1_double, true }, 9845261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsSetElementAt_double213rs_allocationDv2_dj", (void *)&SC_SetElementAt1_double2, true }, 9855261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsSetElementAt_double313rs_allocationDv3_dj", (void *)&SC_SetElementAt1_double3, true }, 9865261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsSetElementAt_double413rs_allocationDv4_dj", (void *)&SC_SetElementAt1_double4, true }, 9875261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_double13rs_allocationdjj", (void *)&SC_SetElementAt2_double, true }, 9885261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsSetElementAt_double213rs_allocationDv2_djj", (void *)&SC_SetElementAt2_double2, true }, 9895261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsSetElementAt_double313rs_allocationDv3_djj", (void *)&SC_SetElementAt2_double3, true }, 9905261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsSetElementAt_double413rs_allocationDv4_djj", (void *)&SC_SetElementAt2_double4, true }, 9915261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z21rsSetElementAt_double13rs_allocationdjjj", (void *)&SC_SetElementAt3_double, true }, 9925261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsSetElementAt_double213rs_allocationDv2_djjj", (void *)&SC_SetElementAt3_double2, true }, 9935261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsSetElementAt_double313rs_allocationDv3_djjj", (void *)&SC_SetElementAt3_double3, true }, 9945261a5ea546ff358edd5aac7602fc4132434f481Jason Sams { "_Z22rsSetElementAt_double413rs_allocationDv4_djjj", (void *)&SC_SetElementAt3_double4, true }, 9955261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 9965261a5ea546ff358edd5aac7602fc4132434f481Jason Sams 99787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams // Refcounting 99887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP10rs_elementS_", (void *)&SC_SetObject, true }, 99987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP10rs_element", (void *)&SC_ClearObject, true }, 100087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject10rs_element", (void *)&SC_IsObject, true }, 100187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 100287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP7rs_typeS_", (void *)&SC_SetObject, true }, 100387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP7rs_type", (void *)&SC_ClearObject, true }, 100487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject7rs_type", (void *)&SC_IsObject, true }, 100587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 100687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP13rs_allocationS_", (void *)&SC_SetObject, true }, 100787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP13rs_allocation", (void *)&SC_ClearObject, true }, 100887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject13rs_allocation", (void *)&SC_IsObject, true }, 100987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 101087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP10rs_samplerS_", (void *)&SC_SetObject, true }, 101187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP10rs_sampler", (void *)&SC_ClearObject, true }, 101287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject10rs_sampler", (void *)&SC_IsObject, true }, 101387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 101487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP9rs_scriptS_", (void *)&SC_SetObject, true }, 101587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP9rs_script", (void *)&SC_ClearObject, true }, 101687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject9rs_script", (void *)&SC_IsObject, true }, 101787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 10189e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams { "_Z11rsSetObjectP7rs_pathS_", (void *)&SC_SetObject, true }, 10199e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams { "_Z13rsClearObjectP7rs_path", (void *)&SC_ClearObject, true }, 10209e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams { "_Z10rsIsObject7rs_path", (void *)&SC_IsObject, true }, 10219e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams 102287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP7rs_meshS_", (void *)&SC_SetObject, true }, 102387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP7rs_mesh", (void *)&SC_ClearObject, true }, 102487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject7rs_mesh", (void *)&SC_IsObject, true }, 102587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 102687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP19rs_program_fragmentS_", (void *)&SC_SetObject, true }, 102787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP19rs_program_fragment", (void *)&SC_ClearObject, true }, 102887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject19rs_program_fragment", (void *)&SC_IsObject, true }, 102987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 103087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP17rs_program_vertexS_", (void *)&SC_SetObject, true }, 103187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP17rs_program_vertex", (void *)&SC_ClearObject, true }, 103287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject17rs_program_vertex", (void *)&SC_IsObject, true }, 103387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 103487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP17rs_program_rasterS_", (void *)&SC_SetObject, true }, 103587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP17rs_program_raster", (void *)&SC_ClearObject, true }, 103687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject17rs_program_raster", (void *)&SC_IsObject, true }, 103787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 103887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP16rs_program_storeS_", (void *)&SC_SetObject, true }, 103987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP16rs_program_store", (void *)&SC_ClearObject, true }, 104087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject16rs_program_store", (void *)&SC_IsObject, true }, 104187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 104287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsSetObjectP7rs_fontS_", (void *)&SC_SetObject, true }, 104387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsClearObjectP7rs_font", (void *)&SC_ClearObject, true }, 104487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z10rsIsObject7rs_font", (void *)&SC_IsObject, true }, 104587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 104687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams // Allocation ops 104787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z21rsAllocationMarkDirty13rs_allocation", (void *)&SC_AllocationSyncAll, true }, 104887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z20rsgAllocationSyncAll13rs_allocation", (void *)&SC_AllocationSyncAll, false }, 104987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z20rsgAllocationSyncAll13rs_allocationj", (void *)&SC_AllocationSyncAll2, false }, 105074a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk { "_Z20rsgAllocationSyncAll13rs_allocation24rs_allocation_usage_type", (void *)&SC_AllocationSyncAll2, false }, 105187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z15rsGetAllocationPKv", (void *)&SC_GetAllocation, true }, 1052b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams { "_Z18rsAllocationIoSend13rs_allocation", (void *)&SC_AllocationIoSend, false }, 1053b322033c13487a174bb9c26466e9684d1ff4de8dJason Sams { "_Z21rsAllocationIoReceive13rs_allocation", (void *)&SC_AllocationIoReceive, false }, 105474a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk { "_Z23rsAllocationCopy1DRange13rs_allocationjjjS_jj", (void *)&SC_AllocationCopy1DRange, false }, 105574a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk { "_Z23rsAllocationCopy2DRange13rs_allocationjjj26rs_allocation_cubemap_facejjS_jjjS0_", (void *)&SC_AllocationCopy2DRange, false }, 105687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 105787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams // Messaging 105887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 105987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsSendToClienti", (void *)&SC_ToClient, false }, 106087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsSendToClientiPKvj", (void *)&SC_ToClient2, false }, 106187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z22rsSendToClientBlockingi", (void *)&SC_ToClientBlocking, false }, 106287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z22rsSendToClientBlockingiPKvj", (void *)&SC_ToClientBlocking2, false }, 106387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 106487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z22rsgBindProgramFragment19rs_program_fragment", (void *)&SC_BindProgramFragment, false }, 106587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z19rsgBindProgramStore16rs_program_store", (void *)&SC_BindProgramStore, false }, 106687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z20rsgBindProgramVertex17rs_program_vertex", (void *)&SC_BindProgramVertex, false }, 106787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z20rsgBindProgramRaster17rs_program_raster", (void *)&SC_BindProgramRaster, false }, 106887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsgBindSampler19rs_program_fragmentj10rs_sampler", (void *)&SC_BindSampler, false }, 106987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsgBindTexture19rs_program_fragmentj13rs_allocation", (void *)&SC_BindTexture, false }, 1070a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchouk { "_Z15rsgBindConstant19rs_program_fragmentj13rs_allocation", (void *)&SC_BindFragmentConstant, false }, 1071a720a144508edd91e4790b23eadd6cd270368df9Alex Sakhartchouk { "_Z15rsgBindConstant17rs_program_vertexj13rs_allocation", (void *)&SC_BindVertexConstant, false }, 107287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 107387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z36rsgProgramVertexLoadProjectionMatrixPK12rs_matrix4x4", (void *)&SC_VpLoadProjectionMatrix, false }, 107487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z31rsgProgramVertexLoadModelMatrixPK12rs_matrix4x4", (void *)&SC_VpLoadModelMatrix, false }, 107587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z33rsgProgramVertexLoadTextureMatrixPK12rs_matrix4x4", (void *)&SC_VpLoadTextureMatrix, false }, 107687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 107787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z35rsgProgramVertexGetProjectionMatrixP12rs_matrix4x4", (void *)&SC_VpGetProjectionMatrix, false }, 107887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 107987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z31rsgProgramFragmentConstantColor19rs_program_fragmentffff", (void *)&SC_PfConstantColor, false }, 108087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 108187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgGetWidthv", (void *)&SC_GetWidth, false }, 108287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z12rsgGetHeightv", (void *)&SC_GetHeight, false }, 108387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 108487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 108587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawRectfffff", (void *)&SC_DrawRect, false }, 108687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawQuadffffffffffff", (void *)&SC_DrawQuad, false }, 108787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z20rsgDrawQuadTexCoordsffffffffffffffffffff", (void *)&SC_DrawQuadTexCoords, false }, 108887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z24rsgDrawSpriteScreenspacefffff", (void *)&SC_DrawSpriteScreenspace, false }, 108987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 109087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawMesh7rs_mesh", (void *)&SC_DrawMesh, false }, 109187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawMesh7rs_meshj", (void *)&SC_DrawMeshPrimitive, false }, 109287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawMesh7rs_meshjjj", (void *)&SC_DrawMeshPrimitiveRange, false }, 109387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z25rsgMeshComputeBoundingBox7rs_meshPfS0_S0_S0_S0_S0_", (void *)&SC_MeshComputeBoundingBox, false }, 109487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 10959e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams { "_Z11rsgDrawPath7rs_path", (void *)&SC_DrawPath, false }, 10969e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams 109787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsgClearColorffff", (void *)&SC_ClearColor, false }, 109887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsgClearDepthf", (void *)&SC_ClearDepth, false }, 109987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 110087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawTextPKcii", (void *)&SC_DrawText, false }, 110187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgDrawText13rs_allocationii", (void *)&SC_DrawTextAlloc, false }, 110287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsgMeasureTextPKcPiS1_S1_S1_", (void *)&SC_MeasureText, false }, 110387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsgMeasureText13rs_allocationPiS0_S0_S0_", (void *)&SC_MeasureTextAlloc, false }, 110487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 110587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsgBindFont7rs_font", (void *)&SC_BindFont, false }, 110687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z12rsgFontColorffff", (void *)&SC_FontColor, false }, 110787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 110887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z18rsgBindColorTarget13rs_allocationj", (void *)&SC_BindFrameBufferObjectColorTarget, false }, 110987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z18rsgBindDepthTarget13rs_allocation", (void *)&SC_BindFrameBufferObjectDepthTarget, false }, 111087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z19rsgClearColorTargetj", (void *)&SC_ClearFrameBufferObjectColorTarget, false }, 111187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z19rsgClearDepthTargetv", (void *)&SC_ClearFrameBufferObjectDepthTarget, false }, 111287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z24rsgClearAllRenderTargetsv", (void *)&SC_ClearFrameBufferObjectTargets, false }, 111387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 1114aa152101cc4d04597d9aefc3e5a1454eaf39d2ccJason Sams { "_Z9rsForEach9rs_script13rs_allocationS0_", (void *)&SC_ForEach_SAA, true }, 1115aa152101cc4d04597d9aefc3e5a1454eaf39d2ccJason Sams { "_Z9rsForEach9rs_script13rs_allocationS0_PKv", (void *)&SC_ForEach_SAAU, true }, 1116f598811a60088236222bb1879503842094ca378bStephen Hines { "_Z9rsForEach9rs_script13rs_allocationS0_PKvPK14rs_script_call", (void *)&SC_ForEach_SAAUS, true }, 1117aa152101cc4d04597d9aefc3e5a1454eaf39d2ccJason Sams { "_Z9rsForEach9rs_script13rs_allocationS0_PKvj", (void *)&SC_ForEach_SAAUL, true }, 1118f598811a60088236222bb1879503842094ca378bStephen Hines { "_Z9rsForEach9rs_script13rs_allocationS0_PKvjPK14rs_script_call", (void *)&SC_ForEach_SAAULS, true }, 111987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 112087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams // time 112187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z6rsTimePi", (void *)&SC_Time, true }, 112287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z11rsLocaltimeP5rs_tmPKi", (void *)&SC_LocalTime, true }, 112387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z14rsUptimeMillisv", (void*)&SC_UptimeMillis, true }, 112487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z13rsUptimeNanosv", (void*)&SC_UptimeNanos, true }, 112587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z7rsGetDtv", (void*)&SC_GetDt, false }, 112687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 112787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams // misc 112887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z5colorffff", (void *)&SC_Color, false }, 112987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { "_Z9rsgFinishv", (void *)&SC_Finish, false }, 113087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 113187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams { NULL, NULL, false } 113287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams}; 113387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 113487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 1135709a0978ae141198018ca9769f8d96292a8928e6Jason Samsextern const RsdCpuReference::CpuSymbol * rsdLookupRuntimeStub(Context * pContext, char const* name) { 113687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams ScriptC *s = (ScriptC *)pContext; 1137709a0978ae141198018ca9769f8d96292a8928e6Jason Sams const RsdCpuReference::CpuSymbol *syms = gSyms; 1138709a0978ae141198018ca9769f8d96292a8928e6Jason Sams const RsdCpuReference::CpuSymbol *sym = NULL; 113987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 114087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams if (!sym) { 1141709a0978ae141198018ca9769f8d96292a8928e6Jason Sams while (syms->fnPtr) { 1142709a0978ae141198018ca9769f8d96292a8928e6Jason Sams if (!strcmp(syms->name, name)) { 1143709a0978ae141198018ca9769f8d96292a8928e6Jason Sams return syms; 114487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams } 114587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams syms++; 114687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams } 114787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams } 114887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 114987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams return NULL; 115087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} 115187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 115287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams 1153