diff --git a/code/renderergl2/tr_init.c b/code/renderergl2/tr_init.c index 12bac4b0..6e4ea1c0 100644 --- a/code/renderergl2/tr_init.c +++ b/code/renderergl2/tr_init.c @@ -228,6 +228,8 @@ cvar_t *r_saveFontData; cvar_t *r_marksOnTriangleMeshes; +cvar_t *r_vaoCache; + cvar_t *r_aviMotionJpegQuality; cvar_t *r_screenshotJpegQuality; @@ -1433,6 +1435,8 @@ void R_Register( void ) r_marksOnTriangleMeshes = ri.Cvar_Get("r_marksOnTriangleMeshes", "0", CVAR_ARCHIVE); + r_vaoCache = ri.Cvar_Get("r_vaoCache", "0", CVAR_ARCHIVE); + r_aviMotionJpegQuality = ri.Cvar_Get("r_aviMotionJpegQuality", "90", CVAR_ARCHIVE); r_screenshotJpegQuality = ri.Cvar_Get("r_screenshotJpegQuality", "90", CVAR_ARCHIVE); diff --git a/code/renderergl2/tr_local.h b/code/renderergl2/tr_local.h index 9f46866f..687a8ef0 100644 --- a/code/renderergl2/tr_local.h +++ b/code/renderergl2/tr_local.h @@ -1848,6 +1848,8 @@ extern cvar_t *r_printShaders; extern cvar_t *r_marksOnTriangleMeshes; +extern cvar_t *r_vaoCache; + //==================================================================== static ID_INLINE qboolean ShaderRequiresCPUDeforms(const shader_t * shader) diff --git a/code/renderergl2/tr_surface.c b/code/renderergl2/tr_surface.c index 3151638a..50e04cb4 100644 --- a/code/renderergl2/tr_surface.c +++ b/code/renderergl2/tr_surface.c @@ -409,6 +409,9 @@ static qboolean RB_SurfaceVaoCached(int numVerts, srfVert_t *verts, int numIndex qboolean recycleIndexBuffer = qfalse; qboolean endSurface = qfalse; + if (!r_vaoCache->integer) + return qfalse; + if (!(!ShaderRequiresCPUDeforms(tess.shader) && !tess.shader->isSky && !tess.shader->isPortal)) return qfalse;