From abcf25ead21909d6f9f0f6ac33ed98b31526d686 Mon Sep 17 00:00:00 2001 From: scrawl Date: Tue, 28 Feb 2012 16:41:05 +0100 Subject: [PATCH] terrain shader performance improvement (tested on opengl only, please test on directx) --- apps/openmw/mwrender/terrainmaterial.cpp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/apps/openmw/mwrender/terrainmaterial.cpp b/apps/openmw/mwrender/terrainmaterial.cpp index 61a7cdb190..2b1eb26041 100644 --- a/apps/openmw/mwrender/terrainmaterial.cpp +++ b/apps/openmw/mwrender/terrainmaterial.cpp @@ -1113,10 +1113,17 @@ namespace Ogre "." + blendChannel; // generate early-out conditional - /* Disable - causing some issues even when trying to force the use of texldd + // Disable - causing some issues even when trying to force the use of texldd + + // comment by scrawl: + // on a NVIDIA card in opengl mode, didn't produce any problems, + // while increasing FPS from 170 to 185 (!!!) in the same area + // so let's try this out - if something does cause problems for + // someone else (with a different card / renderer) we can just + // add a vendor-specific check here if (layer && prof->_isSM3Available()) outStream << " if (" << blendWeightStr << " > 0.0003)\n { \n"; - */ + // generate UV outStream << " float2 uv" << layer << " = layerUV" << uvIdx << uvChannels << ";\n"; @@ -1165,10 +1172,17 @@ namespace Ogre } // End early-out - /* Disable - causing some issues even when trying to force the use of texldd + // Disable - causing some issues even when trying to force the use of texldd + + // comment by scrawl: + // on a NVIDIA card in opengl mode, didn't produce any problems, + // while increasing FPS from 170 to 185 (!!!) in the same area + // so let's try this out - if something does cause problems for + // someone else (with a different card / renderer) we can just + // add a vendor-specific check here if (layer && prof->_isSM3Available()) outStream << " } // early-out blend value\n"; - */ + } //--------------------------------------------------------------------- void TerrainMaterialGeneratorB::SM2Profile::ShaderHelperCg::generateVpFooter(