summaryrefslogtreecommitdiffstats
path: root/libs/rs/rsContext.cpp
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2010-09-28 14:41:22 -0700
committerJason Sams <rjsams@android.com>2010-09-28 14:41:42 -0700
commitf3470edc8a929d73797789656ce840aff918dcd0 (patch)
tree7727d1678314a56251a58b819de3d1a8338d5ddf /libs/rs/rsContext.cpp
parent556547dde9508ff88fe56a52c69e7ffb0e949f55 (diff)
downloadframeworks_base-f3470edc8a929d73797789656ce840aff918dcd0.zip
frameworks_base-f3470edc8a929d73797789656ce840aff918dcd0.tar.gz
frameworks_base-f3470edc8a929d73797789656ce840aff918dcd0.tar.bz2
Fix safe for mp check in ScriptC.
Change-Id: Id91b3c1e99b2705fd39f9e74a52c61110805e246
Diffstat (limited to 'libs/rs/rsContext.cpp')
-rw-r--r--libs/rs/rsContext.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp
index 3681bc2..a7f380f 100644
--- a/libs/rs/rsContext.cpp
+++ b/libs/rs/rsContext.cpp
@@ -33,6 +33,8 @@
#include <GLES2/gl2ext.h>
#include <cutils/sched_policy.h>
+#include <sys/syscall.h>
+#include <string.h>
using namespace android;
using namespace android::renderscript;
@@ -371,11 +373,15 @@ void * Context::helperThreadProc(void *vrsc)
rsc->mWorkers.mLaunchSignals[idx].init();
rsc->mWorkers.mNativeThreadId[idx] = gettid();
- //cpu_set_t cpset[16];
- //int ret = sched_getaffinity(rsc->mWorkers.mNativeThreadId[idx], sizeof(cpset), &cpset);
- //LOGE("ret = %i", ret);
-
-//sched_setaffinity
+#if 0
+ typedef struct {uint64_t bits[1024 / 64]; } cpu_set_t;
+ cpu_set_t cpuset;
+ memset(&cpuset, 0, sizeof(cpuset));
+ cpuset.bits[idx / 64] |= 1ULL << (idx % 64);
+ int ret = syscall(241, rsc->mWorkers.mNativeThreadId[idx],
+ sizeof(cpuset), &cpuset);
+ LOGE("SETAFFINITY ret = %i %s", ret, EGLUtils::strerror(ret));
+#endif
setpriority(PRIO_PROCESS, rsc->mWorkers.mNativeThreadId[idx], rsc->mThreadPriority);
while(rsc->mRunning) {
@@ -490,6 +496,7 @@ Context::Context(Device *dev, bool isGraphics, bool useDepth)
usleep(100);
}
+ mWorkers.mCompleteSignal.init();
mWorkers.mRunningCount = 0;
mWorkers.mLaunchCount = 0;
for (uint32_t ct=0; ct < mWorkers.mCount; ct++) {