More robust attribute binding
Adding attribute and uniform debug logging.
Checking to see if aniso filtering is available.
Change-Id: I2ed9d166ed7ff3df971d7af18b7a33f4e3ade928
diff --git a/libs/rs/rsShaderCache.h b/libs/rs/rsShaderCache.h
index df99ccc..312c251 100644
--- a/libs/rs/rsShaderCache.h
+++ b/libs/rs/rsShaderCache.h
@@ -40,22 +40,22 @@
void cleanupAll();
- int32_t vtxAttribSlot(uint32_t a) const {return mCurrent->mVtxAttribSlots[a];}
+ int32_t vtxAttribSlot(const String8 &attrName) const;
int32_t vtxUniformSlot(uint32_t a) const {return mCurrent->mVtxUniformSlots[a];}
int32_t fragAttribSlot(uint32_t a) const {return mCurrent->mFragAttribSlots[a];}
int32_t fragUniformSlot(uint32_t a) const {return mCurrent->mFragUniformSlots[a];}
- bool isUserVertexProgram() const {return mCurrent->mUserVertexProgram;}
protected:
typedef struct {
uint32_t vtx;
uint32_t frag;
uint32_t program;
+ uint32_t vtxAttrCount;
+ const char* mVtxAttribNames[Program::MAX_ATTRIBS];
int32_t mVtxAttribSlots[Program::MAX_ATTRIBS];
int32_t mVtxUniformSlots[Program::MAX_UNIFORMS];
int32_t mFragAttribSlots[Program::MAX_ATTRIBS];
int32_t mFragUniformSlots[Program::MAX_UNIFORMS];
- bool mUserVertexProgram;
bool mIsValid;
} entry_t;
entry_t *mEntries;