summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--graphics/java/android/renderscript/RenderScript.java5
-rw-r--r--graphics/jni/android_renderscript_RenderScript.cpp10
-rw-r--r--libs/rs/rs.spec4
-rw-r--r--libs/rs/rsAllocation.cpp18
-rw-r--r--libs/rs/rsAllocation.h2
-rw-r--r--libs/rs/rsContext.cpp5
-rw-r--r--libs/rs/rsObjectBase.cpp12
-rw-r--r--libs/rs/rsObjectBase.h1
8 files changed, 56 insertions, 1 deletions
diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java
index a5bceb6..c42f647 100644
--- a/graphics/java/android/renderscript/RenderScript.java
+++ b/graphics/java/android/renderscript/RenderScript.java
@@ -68,6 +68,7 @@ public class RenderScript {
native void nContextDestroy(int con);
native void nContextSetSurface(int w, int h, Surface sur);
native void nContextSetPriority(int p);
+ native void nContextDump(int bits);
native void nContextBindRootScript(int script);
native void nContextBindSampler(int sampler, int slot);
@@ -304,6 +305,10 @@ public class RenderScript {
nContextSetSurface(w, h, mSurface);
}
+ public void contextDump(int bits) {
+ nContextDump(bits);
+ }
+
public void destroy() {
nContextDeinitToClient();
mMessageThread.mRun = false;
diff --git a/graphics/jni/android_renderscript_RenderScript.cpp b/graphics/jni/android_renderscript_RenderScript.cpp
index d311c33..af3bc74 100644
--- a/graphics/jni/android_renderscript_RenderScript.cpp
+++ b/graphics/jni/android_renderscript_RenderScript.cpp
@@ -189,9 +189,16 @@ static void
nContextDestroy(JNIEnv *_env, jobject _this, jint con)
{
LOG_API("nContextDestroy, con(%p)", (RsContext)con);
- return rsContextDestroy((RsContext)con);
+ rsContextDestroy((RsContext)con);
}
+static void
+nContextDump(JNIEnv *_env, jobject _this, jint bits)
+{
+ RsContext con = (RsContext)(_env->GetIntField(_this, gContextId));
+ LOG_API("nContextDump, con(%p) bits(%i)", (RsContext)con, bits);
+ rsContextDump((RsContext)con, bits);
+}
static void
nContextPause(JNIEnv *_env, jobject _this)
@@ -1346,6 +1353,7 @@ static JNINativeMethod methods[] = {
{"nContextSetPriority", "(I)V", (void*)nContextSetPriority },
{"nContextSetSurface", "(IILandroid/view/Surface;)V", (void*)nContextSetSurface },
{"nContextDestroy", "(I)V", (void*)nContextDestroy },
+{"nContextDump", "(I)V", (void*)nContextDump },
{"nContextPause", "()V", (void*)nContextPause },
{"nContextResume", "()V", (void*)nContextResume },
{"nAssignName", "(I[B)V", (void*)nAssignName },
diff --git a/libs/rs/rs.spec b/libs/rs/rs.spec
index be988e7..a4e72d9 100644
--- a/libs/rs/rs.spec
+++ b/libs/rs/rs.spec
@@ -42,6 +42,10 @@ ContextSetSurface {
param void *sur
}
+ContextDump {
+ param int32_t bits
+}
+
ContextSetPriority {
param int32_t priority
}
diff --git a/libs/rs/rsAllocation.cpp b/libs/rs/rsAllocation.cpp
index 7f4cf38..bc62f92 100644
--- a/libs/rs/rsAllocation.cpp
+++ b/libs/rs/rsAllocation.cpp
@@ -209,6 +209,24 @@ void Allocation::removeProgramToDirty(const Program *p)
rsAssert(0);
}
+void Allocation::dumpLOGV(const char *prefix) const
+{
+ ObjectBase::dumpLOGV(prefix);
+
+ String8 s(prefix);
+ s.append(" type ");
+ if (mType.get()) {
+ mType->dumpLOGV(s.string());
+ }
+
+ LOGV("%s allocation ptr=%p mCpuWrite=%i, mCpuRead=%i, mGpuWrite=%i, mGpuRead=%i",
+ prefix, mPtr, mCpuWrite, mCpuRead, mGpuWrite, mGpuRead);
+
+ LOGV("%s allocation mIsTexture=%i mIsTextureID=%i, mIsVertexBuffer=%i, mBufferID=%i",
+ prefix, mIsTexture, mTextureID, mIsVertexBuffer, mBufferID);
+
+}
+
void Allocation::sendDirty() const
{
for (size_t ct=0; ct < mToDirtyList.size(); ct++) {
diff --git a/libs/rs/rsAllocation.h b/libs/rs/rsAllocation.h
index cf3ea9e..ac2edf8 100644
--- a/libs/rs/rsAllocation.h
+++ b/libs/rs/rsAllocation.h
@@ -68,6 +68,8 @@ public:
void addProgramToDirty(const Program *);
void removeProgramToDirty(const Program *);
+ virtual void dumpLOGV(const char *prefix) const;
+
protected:
void sendDirty() const;
diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp
index 0bfbd24..5cca60f 100644
--- a/libs/rs/rsContext.cpp
+++ b/libs/rs/rsContext.cpp
@@ -811,6 +811,11 @@ void rsi_ContextSetPriority(Context *rsc, int32_t p)
rsc->setPriority(p);
}
+void rsi_ContextDump(Context *rsc, int32_t bits)
+{
+ ObjectBase::dumpAll(rsc);
+}
+
}
}
diff --git a/libs/rs/rsObjectBase.cpp b/libs/rs/rsObjectBase.cpp
index b7d67cc..05791cb 100644
--- a/libs/rs/rsObjectBase.cpp
+++ b/libs/rs/rsObjectBase.cpp
@@ -190,3 +190,15 @@ void ObjectBase::zeroAllUserRef(Context *rsc)
}
}
+void ObjectBase::dumpAll(Context *rsc)
+{
+ if (rsc->props.mLogObjects) {
+ LOGV("Dumping all objects");
+ const ObjectBase * o = rsc->mObjHead;
+ while (o) {
+ o->dumpLOGV(" ");
+ o = o->mNext;
+ }
+ }
+}
+
diff --git a/libs/rs/rsObjectBase.h b/libs/rs/rsObjectBase.h
index dc85ac7..f247022 100644
--- a/libs/rs/rsObjectBase.h
+++ b/libs/rs/rsObjectBase.h
@@ -49,6 +49,7 @@ public:
void setContext(Context *);
static void zeroAllUserRef(Context *rsc);
+ static void dumpAll(Context *rsc);
virtual void dumpLOGV(const char *prefix) const;