diff options
Diffstat (limited to 'indra')
-rwxr-xr-x | indra/llrender/llglslshader.cpp | 19 | ||||
-rwxr-xr-x | indra/newview/llglsandbox.cpp | 14 |
2 files changed, 27 insertions, 6 deletions
diff --git a/indra/llrender/llglslshader.cpp b/indra/llrender/llglslshader.cpp index b81dd4c9a1..a98737ee64 100755 --- a/indra/llrender/llglslshader.cpp +++ b/indra/llrender/llglslshader.cpp @@ -214,7 +214,7 @@ void LLGLSLShader::startProfile() //static void LLGLSLShader::stopProfile(U32 count, U32 mode) { - if (sProfileEnabled) + if (sProfileEnabled && sCurBoundShaderPtr) { sCurBoundShaderPtr->readProfileQuery(count, mode); } @@ -263,18 +263,29 @@ void LLGLSLShader::placeProfileQuery() glBeginQueryARB(GL_SAMPLES_PASSED, mSamplesQuery); - glBeginQueryARB(GL_TIME_ELAPSED, mTimerQuery); + + if (gGLManager.mHasTimerQuery) + { + glBeginQueryARB(GL_TIME_ELAPSED, mTimerQuery); + } #endif } void LLGLSLShader::readProfileQuery(U32 count, U32 mode) { #if !LL_DARWIN - glEndQueryARB(GL_TIME_ELAPSED); + if (gGLManager.mHasTimerQuery) + { + glEndQueryARB(GL_TIME_ELAPSED); + } + glEndQueryARB(GL_SAMPLES_PASSED); U64 time_elapsed = 0; - glGetQueryObjectui64v(mTimerQuery, GL_QUERY_RESULT, &time_elapsed); + if (gGLManager.mHasTimerQuery) + { + glGetQueryObjectui64v(mTimerQuery, GL_QUERY_RESULT, &time_elapsed); + } U64 samples_passed = 0; glGetQueryObjectui64v(mSamplesQuery, GL_QUERY_RESULT, &samples_passed); diff --git a/indra/newview/llglsandbox.cpp b/indra/newview/llglsandbox.cpp index 4b8ac2b3cf..7cf17c90e9 100755 --- a/indra/newview/llglsandbox.cpp +++ b/indra/newview/llglsandbox.cpp @@ -954,7 +954,7 @@ F32 gpu_benchmark() //make a dummy triangle to draw with LLPointer<LLVertexBuffer> buff = new LLVertexBuffer(LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0, GL_STATIC_DRAW_ARB); - buff->allocateBuffer(3, 0, true); + buff->allocateBuffer(12, 0, true); LLStrider<LLVector3> v; LLStrider<LLVector2> tc; @@ -964,6 +964,16 @@ F32 gpu_benchmark() v[0].set(-1,1,0); v[1].set(-1,-3,0); v[2].set(3,1,0); + v[3].set(-1,1,0); + v[4].set(-1,-3,0); + v[5].set(3,1,0); + v[6].set(-1,1,0); + v[7].set(-1,-3,0); + v[8].set(3,1,0); + v[9].set(-1,1,0); + v[10].set(-1,-3,0); + v[11].set(3,1,0); + buff->flush(); gBenchmarkProgram.bind(); @@ -983,7 +993,7 @@ F32 gpu_benchmark() { dest[i].bindTarget(); gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, source[i]); - buff->drawArrays(LLRender::TRIANGLES, 0, 3); + buff->drawArrays(LLRender::TRIANGLES, 0, 12); dest[i].flush(); } |