Skip to content

Commit 2791429

Browse files
author
Jason Sams
committed
Add prop to force cap compute threading.
bug=6124869 Change-Id: Ibf2cc388f3906cea2741382ff5e522e3b416393c
1 parent d1c8c12 commit 2791429

File tree

3 files changed

+17
-10
lines changed

3 files changed

+17
-10
lines changed

libs/rs/driver/rsdCore.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,12 @@ bool rsdHalInit(Context *rsc, uint32_t version_major, uint32_t version_minor) {
228228

229229
int cpu = sysconf(_SC_NPROCESSORS_ONLN);
230230
ALOGV("%p Launching thread(s), CPUs %i", rsc, cpu);
231-
if (cpu < 2) cpu = 0;
231+
if(rsc->props.mDebugMaxThreads && (cpu > (int)rsc->props.mDebugMaxThreads)) {
232+
cpu = rsc->props.mDebugMaxThreads;
233+
}
234+
if (cpu < 2) {
235+
cpu = 0;
236+
}
232237

233238
dc->mWorkers.mCount = (uint32_t)cpu;
234239
dc->mWorkers.mThreadId = (pthread_t *) calloc(dc->mWorkers.mCount, sizeof(pthread_t));

libs/rs/rsContext.cpp

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -178,10 +178,10 @@ void Context::setupProgramStore() {
178178
mFragmentStore->setup(this, &mStateFragmentStore);
179179
}
180180

181-
static bool getProp(const char *str) {
181+
static uint32_t getProp(const char *str) {
182182
char buf[PROPERTY_VALUE_MAX];
183183
property_get(str, buf, "0");
184-
return 0 != strcmp(buf, "0");
184+
return atoi(buf);
185185
}
186186

187187
void Context::displayDebugStats() {
@@ -211,13 +211,14 @@ void * Context::threadProc(void *vrsc) {
211211
setpriority(PRIO_PROCESS, rsc->mNativeThreadId, ANDROID_PRIORITY_DISPLAY);
212212
rsc->mThreadPriority = ANDROID_PRIORITY_DISPLAY;
213213
#endif //ANDROID_RS_SERIALIZE
214-
rsc->props.mLogTimes = getProp("debug.rs.profile");
215-
rsc->props.mLogScripts = getProp("debug.rs.script");
216-
rsc->props.mLogObjects = getProp("debug.rs.object");
217-
rsc->props.mLogShaders = getProp("debug.rs.shader");
218-
rsc->props.mLogShadersAttr = getProp("debug.rs.shader.attributes");
219-
rsc->props.mLogShadersUniforms = getProp("debug.rs.shader.uniforms");
220-
rsc->props.mLogVisual = getProp("debug.rs.visual");
214+
rsc->props.mLogTimes = getProp("debug.rs.profile") != 0;
215+
rsc->props.mLogScripts = getProp("debug.rs.script") != 0;
216+
rsc->props.mLogObjects = getProp("debug.rs.object") != 0;
217+
rsc->props.mLogShaders = getProp("debug.rs.shader") != 0;
218+
rsc->props.mLogShadersAttr = getProp("debug.rs.shader.attributes") != 0;
219+
rsc->props.mLogShadersUniforms = getProp("debug.rs.shader.uniforms") != 0;
220+
rsc->props.mLogVisual = getProp("debug.rs.visual") != 0;
221+
rsc->props.mDebugMaxThreads = getProp("debug.rs.max-threads");
221222

222223
if (!rsdHalInit(rsc, 0, 0)) {
223224
rsc->setError(RS_ERROR_FATAL_DRIVER, "Failed initializing GL");

libs/rs/rsContext.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,7 @@ class Context {
184184
bool mLogShadersAttr;
185185
bool mLogShadersUniforms;
186186
bool mLogVisual;
187+
uint32_t mDebugMaxThreads;
187188
} props;
188189

189190
mutable struct {

0 commit comments

Comments
 (0)