diff --git a/indra/llrender/llglslshader.cpp b/indra/llrender/llglslshader.cpp
index d9e381e998b8490792da3a0365946a3d7a0f5491..a98737ee642f64b42262d28a2d7c9f209e964e50 100755
--- a/indra/llrender/llglslshader.cpp
+++ b/indra/llrender/llglslshader.cpp
@@ -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 4b8ac2b3cf32407ac4d13f87525c67b66e42799c..7cf17c90e9ca7bc46fde6f34efaeef64ce868774 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();
 		}