Merge change I5dad8b4d

* changes:
  Place shader logging behind prop to declutter logs.
This commit is contained in:
Android (Google) Code Review
2009-12-16 11:12:16 -08:00
10 changed files with 32 additions and 19 deletions

View File

@@ -239,7 +239,7 @@ void Context::timerPrint()
void Context::setupCheck()
{
if (checkVersion2_0()) {
mShaderCache.lookup(mVertex.get(), mFragment.get());
mShaderCache.lookup(this, mVertex.get(), mFragment.get());
mFragmentStore->setupGL2(this, &mStateFragmentStore);
mFragment->setupGL2(this, &mStateFragment, &mShaderCache);
@@ -272,6 +272,7 @@ void * Context::threadProc(void *vrsc)
rsc->props.mLogTimes = getProp("debug.rs.profile");
rsc->props.mLogScripts = getProp("debug.rs.script");
rsc->props.mLogObjects = getProp("debug.rs.objects");
rsc->props.mLogShaders = getProp("debug.rs.shaders");
ScriptTLSStruct *tlsStruct = new ScriptTLSStruct;
if (!tlsStruct) {

View File

@@ -164,6 +164,7 @@ public:
bool mLogTimes;
bool mLogScripts;
bool mLogObjects;
bool mLogShaders;
} props;
void dumpDebug() const;

View File

@@ -125,13 +125,15 @@ void Program::createShader()
{
}
bool Program::loadShader(uint32_t type)
bool Program::loadShader(Context *rsc, uint32_t type)
{
mShaderID = glCreateShader(type);
rsAssert(mShaderID);
LOGV("Loading shader type %x, ID %i", type, mShaderID);
LOGE(mShader.string());
if (rsc->props.mLogShaders) {
LOGV("Loading shader type %x, ID %i", type, mShaderID);
LOGV(mShader.string());
}
if (mShaderID) {
const char * ss = mShader.string();
@@ -156,7 +158,10 @@ bool Program::loadShader(uint32_t type)
}
}
}
LOGV("--Shader load result %x ", glGetError());
if (rsc->props.mLogShaders) {
LOGV("--Shader load result %x ", glGetError());
}
return true;
}

View File

@@ -72,7 +72,7 @@ protected:
String8 mAttribNames[MAX_ATTRIBS];
String8 mUniformNames[MAX_UNIFORMS];
bool loadShader(uint32_t type);
bool loadShader(Context *, uint32_t type);
public:
void forceDirty() const {mDirty = true;}

View File

@@ -161,8 +161,8 @@ void ProgramFragment::setupGL2(const Context *rsc, ProgramFragmentState *state,
//LOGE("sgl2 frag2 %x", glGetError());
}
void ProgramFragment::loadShader() {
Program::loadShader(GL_FRAGMENT_SHADER);
void ProgramFragment::loadShader(Context *rsc) {
Program::loadShader(rsc, GL_FRAGMENT_SHADER);
}
void ProgramFragment::createShader()

View File

@@ -50,7 +50,7 @@ public:
void setTexEnable(uint32_t slot, bool);
virtual void createShader();
virtual void loadShader();
virtual void loadShader(Context *rsc);
virtual void init(Context *rsc);

View File

@@ -108,8 +108,8 @@ void ProgramVertex::setupGL(const Context *rsc, ProgramVertexState *state)
mDirty = false;
}
void ProgramVertex::loadShader() {
Program::loadShader(GL_VERTEX_SHADER);
void ProgramVertex::loadShader(Context *rsc) {
Program::loadShader(rsc, GL_VERTEX_SHADER);
}
void ProgramVertex::createShader()

View File

@@ -49,7 +49,7 @@ public:
void transformToScreen(const Context *, float *v4out, const float *v3in) const;
virtual void createShader();
virtual void loadShader();
virtual void loadShader(Context *);
virtual void init(Context *);

View File

@@ -41,13 +41,13 @@ ShaderCache::~ShaderCache()
free(mEntries);
}
bool ShaderCache::lookup(ProgramVertex *vtx, ProgramFragment *frag)
bool ShaderCache::lookup(Context *rsc, ProgramVertex *vtx, ProgramFragment *frag)
{
if (!vtx->getShaderID()) {
vtx->loadShader();
vtx->loadShader(rsc);
}
if (!frag->getShaderID()) {
frag->loadShader();
frag->loadShader(rsc);
}
//LOGV("ShaderCache lookup vtx %i, frag %i", vtx->getShaderID(), frag->getShaderID());
@@ -115,15 +115,21 @@ bool ShaderCache::lookup(ProgramVertex *vtx, ProgramFragment *frag)
}
for (uint32_t ct=0; ct < vtx->getAttribCount(); ct++) {
e->mVtxAttribSlots[ct] = glGetAttribLocation(pgm, vtx->getAttribName(ct));
LOGV("vtx A, %s = %d\n", vtx->getAttribName(ct).string(), e->mVtxAttribSlots[ct]);
if (rsc->props.mLogShaders) {
LOGV("vtx A, %s = %d\n", vtx->getAttribName(ct).string(), e->mVtxAttribSlots[ct]);
}
}
for (uint32_t ct=0; ct < vtx->getUniformCount(); ct++) {
e->mVtxUniformSlots[ct] = glGetUniformLocation(pgm, vtx->getUniformName(ct));
LOGV("vtx U, %s = %d\n", vtx->getUniformName(ct).string(), e->mVtxUniformSlots[ct]);
if (rsc->props.mLogShaders) {
LOGV("vtx U, %s = %d\n", vtx->getUniformName(ct).string(), e->mVtxUniformSlots[ct]);
}
}
for (uint32_t ct=0; ct < vtx->getUniformCount(); ct++) {
e->mFragUniformSlots[ct] = glGetUniformLocation(pgm, frag->getUniformName(ct));
LOGV("frag U, %s = %d\n", frag->getUniformName(ct).string(), e->mFragUniformSlots[ct]);
if (rsc->props.mLogShaders) {
LOGV("frag U, %s = %d\n", frag->getUniformName(ct).string(), e->mFragUniformSlots[ct]);
}
}
}

View File

@@ -33,7 +33,7 @@ public:
ShaderCache();
virtual ~ShaderCache();
bool lookup(ProgramVertex *, ProgramFragment *);
bool lookup(Context *rsc, ProgramVertex *, ProgramFragment *);
void cleanupVertex(uint32_t id);
void cleanupFragment(uint32_t id);