diff options
author | Jason Sams <rjsams@android.com> | 2009-11-17 17:26:46 -0800 |
---|---|---|
committer | Jason Sams <rjsams@android.com> | 2009-11-17 17:26:46 -0800 |
commit | 715333b832fb448c32165c7d97d408a3fa43f7cb (patch) | |
tree | af4da1824b78ad114d993ce6f523373046e3d514 /libs/rs | |
parent | f0166e4dd0907e487531960e36f516406d265b73 (diff) | |
download | frameworks_base-715333b832fb448c32165c7d97d408a3fa43f7cb.zip frameworks_base-715333b832fb448c32165c7d97d408a3fa43f7cb.tar.gz frameworks_base-715333b832fb448c32165c7d97d408a3fa43f7cb.tar.bz2 |
Add support for dumping RS objects to aid in debugging of white blocks bug.
Diffstat (limited to 'libs/rs')
-rw-r--r-- | libs/rs/rs.spec | 4 | ||||
-rw-r--r-- | libs/rs/rsAllocation.cpp | 18 | ||||
-rw-r--r-- | libs/rs/rsAllocation.h | 2 | ||||
-rw-r--r-- | libs/rs/rsContext.cpp | 5 | ||||
-rw-r--r-- | libs/rs/rsObjectBase.cpp | 12 | ||||
-rw-r--r-- | libs/rs/rsObjectBase.h | 1 |
6 files changed, 42 insertions, 0 deletions
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 16029a6..408d83f 100644 --- a/libs/rs/rsAllocation.cpp +++ b/libs/rs/rsAllocation.cpp @@ -190,6 +190,24 @@ void Allocation::subData(uint32_t xoff, uint32_t yoff, uint32_t zoff, { } +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); + + +} ///////////////// diff --git a/libs/rs/rsAllocation.h b/libs/rs/rsAllocation.h index 1b83267..514b1c2 100644 --- a/libs/rs/rsAllocation.h +++ b/libs/rs/rsAllocation.h @@ -65,6 +65,8 @@ public: void enableGLVertexBuffers() const; void setupGLIndexBuffers() const; + virtual void dumpLOGV(const char *prefix) const; + protected: ObjectBaseRef<const Type> mType; diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp index deb9592..08ed725 100644 --- a/libs/rs/rsContext.cpp +++ b/libs/rs/rsContext.cpp @@ -819,6 +819,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; |