irrlicht/tests
cutealien 957d34ff0e Switch Irrlicht to 8 textures per Material as default by increasing value of _IRR_MATERIAL_MAX_TEXTURES_.
Reason is that 4 haven't been enough anymore for even pretty common graphic pipelines for a while now. 
8 might still not be enough, but let's see first if people are happy with it.

This has some costs for people not needing more textures, as we have fatter Materials now. 
- Memory usage increases by 64 bytes per SMaterial.
- Serialization files for the irr-format are now larger. 
- Slight speed cost, thought mainly in debug

For people who don't need this and want to avoid some of the costs there is a new variable irr::video::MATERIAL_MAX_TEXTURES_USED which can be set to the maximal number of textures a project will need
before creating any device. This avoids pretty much all speed-costs involved with this change.

Software drivers are not much affected as they use their own texture-limits (2).

I did a few speed-comparison with varying numbers of _IRR_MATERIAL_MAX_TEXTURES_. The numbers displayed are FPS, so higher is better. I had 2 tests - one which forced many material changes and the other used a single material for all nodes. When there are 2 numbers in a result then I got different (generally lower) FPS when forcing material changes. The test used a simple model with 500 polygons and rendered it 4500 times.
OLD means - before working on all changes related to increasing texture-numbers and without changing materials (found a bunch of places to decrease the impact of this change which also sometimes did speed up Irrlicht generally). 1.8 refers to Irrlicht 1.8 with same test. All tests done on Windows/VisualStudio.

Max.textures    4       8       16      64      64 MATERIAL_MAX_TEXTURES_USED=4
GL/debug        50/68   44/58   35/45
GL/release      117     117     117     80/100  117	
D3D9/debug	51/56	45/49	37/39				
D3D9/release    168     168     152/168 90/87   168
OLD GL/debug    63
OLD GL/release  117
OLD D3D9/debug  44
OLD D3D9/rel    168
1.8 GL/debug    23/29
1.8 GL/release  94/117
1.8 D3D9/debug  59/63
1.8 D3D9/rel    142/152

Take all results with a grain of salt, it probably often is limited by fill-rate and doesn't even notice the texture-number changes (especially in release). 

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5682 dfc29bdd-3216-0410-991c-e03cc46cb475
2019-01-17 15:34:57 +00:00
..
empty/empty Merged revisiosn 1851:1883 from 1.5 branch. unit tests and severla bug fixes. 2008-11-29 22:35:56 +00:00
media Switch Irrlicht to 8 textures per Material as default by increasing value of _IRR_MATERIAL_MAX_TEXTURES_. 2019-01-17 15:34:57 +00:00
2dmaterial.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
Makefile Merge branch releases/1.8 revisions r5347:r5360 into trunk. 2017-01-27 00:37:53 +00:00
anti-aliasing.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
archiveReader.cpp CFileSystem::removeFileArchive now checking for normalized path + corresponding test now evaluated. 2012-04-16 16:44:13 +00:00
b3dAnimation.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
billboards.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
burningsVideo.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
collisionResponseAnimator.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
color.cpp Fix function name change from libpng update. 2010-07-18 11:00:28 +00:00
coreutil.cpp Add tests for mergeFilename. 2014-02-13 00:17:50 +00:00
createImage.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
cursorSetVisible.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
disambiguateTextures.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
draw2DImage.cpp - Changed method name from: 2015-12-17 14:42:09 +00:00
drawPixel.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
drawRectOutline.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
drawVertexPrimitive.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
enumerateImageManipulators.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
exports.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
fast_atof.cpp Merge branch releases/1.8 revisions r5347:r5360 into trunk. 2017-01-27 00:37:53 +00:00
filesystem.cpp Replace asserts in tests with new macro assert_log. 2012-04-03 21:27:22 +00:00
flyCircleAnimator.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
guiDisabledMenu.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
ioScene.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
irrArray.cpp Append a sort test to the array tests. 2017-02-21 21:16:34 +00:00
irrCoreEquals.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
irrList.cpp Replace asserts in tests with new macro assert_log. 2012-04-03 21:27:22 +00:00
irrMap.cpp Replace asserts in tests with new macro assert_log. 2012-04-03 21:27:22 +00:00
irrString.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
lightMaps.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
lights.cpp Merge branch releases/1.8 revisions 5286:5301 into trunk: 2016-05-27 19:35:22 +00:00
line2d.cpp Simplify code in testUtils and get line2d.cpp tp compile in MinGW. 2017-04-06 20:50:05 +00:00
loadTextures.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
main.cpp ITexture::lock interface changed. 2018-11-22 19:13:59 +00:00
makeColorKeyTexture.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
material.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
matrixOps.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
md2Animation.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
meshLoaders.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
meshTransform.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
mrt.cpp - Changed method name from: 2015-12-17 14:42:09 +00:00
orthoCam.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
planeMatrix.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
projectionMatrix.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
removeCustomAnimator.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
renderTargetTexture.cpp Fix test "renderTargetTexture" 2018-11-19 21:50:24 +00:00
sceneCollisionManager.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
sceneNodeAnimator.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
screenshot.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
serializeAttributes.cpp Document some bug/missing feature in the serializeAttributes tests. 2017-11-07 00:30:49 +00:00
skinnedMesh.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
softwareDevice.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
stencilshadow.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
terrainSceneNode.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
testDimension2d.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
testGeometryCreator.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
testLine2d.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
testQuaternion.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
testS3DVertex.cpp Replace asserts in tests with new macro assert_log. 2012-04-03 21:27:22 +00:00
testUtils.cpp Remove compile warnings. 2019-01-17 14:24:11 +00:00
testUtils.h Merge branch releases/1.8 revisions r5302:r5310 into trunk: 2016-07-08 20:41:42 +00:00
testVector2d.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
testVector3d.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
testXML.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
testaabbox.cpp Add getRadius method for aabbox3d, as suggested by hendu 2013-03-07 16:57:55 +00:00
tests-last-passed-at.txt Switch Irrlicht to 8 textures per Material as default by increasing value of _IRR_MATERIAL_MAX_TEXTURES_. 2019-01-17 15:34:57 +00:00
tests-readme.txt Add list of test casses with numbers for easier access to single tests. We can also add some descriptions there. 2012-08-17 17:07:08 +00:00
tests.cbp Added new intersection methods, improved comparison to be reusable (without hardcoding rounding constants), added unit tests for some functionality 2017-04-02 12:41:13 +00:00
tests.workspace https://sourceforge.net/tracker2/?func=detail&aid=2552603&group_id=74339&atid=540678 2009-01-31 17:01:45 +00:00
tests_vc10.sln Add 64 bit targets for examples and tests for VS2010. 2012-06-26 17:53:38 +00:00
tests_vc10.vcxproj Added new intersection methods, improved comparison to be reusable (without hardcoding rounding constants), added unit tests for some functionality 2017-04-02 12:41:13 +00:00
tests_vc11.sln First try for MSVC2012 project files. conversion seems to have worked, though some warnings for 64bit targets were shown. 2012-08-22 23:14:16 +00:00
tests_vc11.vcxproj Added new intersection methods, improved comparison to be reusable (without hardcoding rounding constants), added unit tests for some functionality 2017-04-02 12:41:13 +00:00
tests_vc12.sln - Added Visual Studio 2013 project files. 2015-01-11 20:11:21 +00:00
tests_vc12.vcxproj Added new intersection methods, improved comparison to be reusable (without hardcoding rounding constants), added unit tests for some functionality 2017-04-02 12:41:13 +00:00
tests_vc14.sln - Added projects for Visual Studio 2014. Due to a problems with Windows7.1 SDK on Windows 10 those projects are recommended for users of this OS. 2015-10-01 22:59:08 +00:00
tests_vc14.vcxproj Added new intersection methods, improved comparison to be reusable (without hardcoding rounding constants), added unit tests for some functionality 2017-04-02 12:41:13 +00:00
textureFeatures.cpp - Removed test for lock->modify->unlock mipmaps (this feature is no longer supported in the engine). 2016-03-14 21:48:42 +00:00
textureRenderStates.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
timer.cpp Fix more device->drop calls to properly remove the window as well under windows. 2010-12-07 18:16:42 +00:00
transparentMaterials.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
triangle3d.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
triangleSelector.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
userClipPlane.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
vectorPositionDimension2d.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
videoDriver.cpp Bump copyright to 2012 2012-09-30 23:38:54 +00:00
viewPort.cpp - Added clear buffer flags. 2015-10-15 18:20:06 +00:00
writeImageToFile.cpp IWriteFile::write now returning size_t. 2016-09-08 20:31:15 +00:00