diff options
author | Jason Sams <rjsams@android.com> | 2010-07-26 17:12:55 -0700 |
---|---|---|
committer | Jason Sams <rjsams@android.com> | 2010-07-26 17:12:55 -0700 |
commit | 7f4d0c9705af50351753b608fc107e0220c9a2f4 (patch) | |
tree | 30994da0e42b15bd38da3b8b4e1e682eb2f1ea22 /libs/rs | |
parent | b621677c97ba80804a5ae5d53167616774908867 (diff) | |
download | frameworks_base-7f4d0c9705af50351753b608fc107e0220c9a2f4.zip frameworks_base-7f4d0c9705af50351753b608fc107e0220c9a2f4.tar.gz frameworks_base-7f4d0c9705af50351753b608fc107e0220c9a2f4.tar.bz2 |
Query the CPU count and use the result to determine
if and how many worker threads we use.
Change-Id: I8fc1fb17aff835cfe8ed7c474287bccd532cbb29
Diffstat (limited to 'libs/rs')
-rw-r--r-- | libs/rs/rsContext.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp index e897d00..d6df581 100644 --- a/libs/rs/rsContext.cpp +++ b/libs/rs/rsContext.cpp @@ -468,8 +468,11 @@ Context::Context(Device *dev, bool isGraphics, bool useDepth) timerInit(); timerSet(RS_TIMER_INTERNAL); - LOGV("RS Launching thread(s)"); - mWorkers.mCount = 2; + int cpu = sysconf(_SC_NPROCESSORS_ONLN); + LOGV("RS Launching thread(s), reported CPU count %i", cpu); + if (cpu < 2) cpu = 0; + + mWorkers.mCount = (uint32_t)cpu; mWorkers.mThreadId = (pthread_t *) calloc(mWorkers.mCount, sizeof(pthread_t)); mWorkers.mNativeThreadId = (pid_t *) calloc(mWorkers.mCount, sizeof(pid_t)); mWorkers.mLaunchSignals = new Signal[mWorkers.mCount]; |