From c742c0532cd0a5f47bb704163532aba0dfd41ccb Mon Sep 17 00:00:00 2001
From: Rye Mutt <rye@bred.dog>
Date: Mon, 17 Aug 2020 19:18:59 -0400
Subject: [PATCH] Use dummy VAO when doing benchmark in GL Core

---
 indra/newview/llglsandbox.cpp | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/indra/newview/llglsandbox.cpp b/indra/newview/llglsandbox.cpp
index 56b70e1e129..852dc07efe7 100644
--- a/indra/newview/llglsandbox.cpp
+++ b/indra/newview/llglsandbox.cpp
@@ -1034,6 +1034,31 @@ class ShaderBinder
 	LLGLSLShader& mShader;
 };
 
+class VAOHolder
+{
+public:
+	VAOHolder() = default;
+	~VAOHolder()
+	{
+#ifdef GL_ARB_vertex_array_object
+		if (vaoName != 0)
+		{
+			glDeleteVertexArrays(1, &vaoName);
+		}
+#endif
+	}
+
+	void genVAO()
+	{
+#ifdef GL_ARB_vertex_array_object
+		glGenVertexArrays(1, &vaoName);
+		glBindVertexArray(vaoName);
+#endif
+	}
+
+private:
+	GLuint vaoName = 0;
+};
 
 //-----------------------------------------------------------------------------
 // gpu_benchmark()
@@ -1047,6 +1072,12 @@ F32 gpu_benchmark()
 		return -1.f;
 	}
 
+	VAOHolder dummVAO;
+	if (LLRender::sGLCoreProfile)
+	{
+		dummVAO.genVAO();
+	}
+
     if (gBenchmarkProgram.mProgramObject == 0)
 	{
 		LLViewerShaderMgr::instance()->initAttribsAndUniforms();
-- 
GitLab