diff --git a/indra/newview/llglsandbox.cpp b/indra/newview/llglsandbox.cpp index 56b70e1e129aeb14a7ed5fd40769e79345039eb2..852dc07efe749e6dcdf448d14226174ac2464864 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();