The latest SVN bugs thread

You discovered a bug in the engine, and you are sure that it is not a problem of your code? Just post it in here. Please read the bug posting guidelines first.
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Re: The latest SVN bugs thread

Post by hybrid »

Yeah, sorry. Problems stems from a merge conflict 1.7->1.8, so is also in the 1.8 branch. Fixed there now, merging up to trunk
ACE247
Posts: 704
Joined: Tue Mar 16, 2010 12:31 am

Re: The latest SVN bugs thread

Post by ACE247 »

Latest svn version (4404) not building release build, have not tried debug build.
Most likely caused by recent change from nadro
This just using the default MakeFile as usual. Does though work when removing -fno-rtti from line 66 of Makefile.

Code: Select all

In file included from COpenGLSLMaterialRenderer.cpp:16:0:
COpenGLSLMaterialRenderer.h: In constructor ‘irr::video::COpenGLSLMaterialRenderer::COpenGLSLMaterialRenderer(irr::video::COpenGLDriver*, irr::s32&, const c8*, const c8*, irr::video::E_VERTEX_SHADER_TYPE, const c8*, const c8*, irr::video::E_PIXEL_SHADER_TYPE, const c8*, const c8*, irr::video::E_GEOMETRY_SHADER_TYPE, irr::scene::E_PRIMITIVE_TYPE, irr::scene::E_PRIMITIVE_TYPE, irr::u32, irr::video::IShaderConstantSetCallBack*, irr::video::E_MATERIAL_TYPE, irr::s32)’:
COpenGLSLMaterialRenderer.h:133:9: warning: ‘irr::video::COpenGLSLMaterialRenderer::Program2’ will be initialized after [-Wreorder]
COpenGLSLMaterialRenderer.h:123:27: warning:   ‘irr::video::COpenGLMaterialRenderer* irr::video::COpenGLSLMaterialRenderer::BaseMaterial’ [-Wreorder]
COpenGLSLMaterialRenderer.cpp:32:1: warning:   when initialized here [-Wreorder]
COpenGLSLMaterialRenderer.cpp:60:98: error: ‘dynamic_cast’ not permitted with -fno-rtti
In file included from COpenGLSLMaterialRenderer.cpp:16:0:
COpenGLSLMaterialRenderer.h: In constructor ‘irr::video::COpenGLSLMaterialRenderer::COpenGLSLMaterialRenderer(irr::video::COpenGLDriver*, irr::video::IShaderConstantSetCallBack*, irr::video::E_MATERIAL_TYPE, irr::s32)’:
COpenGLSLMaterialRenderer.h:133:9: warning: ‘irr::video::COpenGLSLMaterialRenderer::Program2’ will be initialized after [-Wreorder]
COpenGLSLMaterialRenderer.h:123:27: warning:   ‘irr::video::COpenGLMaterialRenderer* irr::video::COpenGLSLMaterialRenderer::BaseMaterial’ [-Wreorder]
COpenGLSLMaterialRenderer.cpp:78:1: warning:   when initialized here [-Wreorder]
COpenGLSLMaterialRenderer.cpp:86:98: error: ‘dynamic_cast’ not permitted with -fno-rtti
g++ -Wall -pipe -fno-exceptions -fno-rtti -fstrict-aliasing -fexpensive-optimizations -O3 -I../../include -Izlib -Ijpeglib -Ilibpng -I/usr/X11R6/include -DIRRLICHT_EXPORTS=1  -c -o CD3D8Driver.o CD3D8Driver.cpp
make: *** [COpenGLSLMaterialRenderer.o] Error 1
make: *** Waiting for unfinished jobs....
Nadro
Posts: 1648
Joined: Sun Feb 19, 2006 9:08 am
Location: Warsaw, Poland

Re: The latest SVN bugs thread

Post by Nadro »

Casting here should be safe, so I'll change dynamic_cast. Thanks for report this bug. Today I would commit next improvements.
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
zerochen
Posts: 273
Joined: Wed Jan 07, 2009 1:17 am
Location: Germany

Re: The latest SVN bugs thread

Post by zerochen »

hi,

dont wanna to open a own thread for this.

~CD3D9ShaderMaterialRenderer(); has to be virtual.

and also this two functions:

~CD3D9HLSLMaterialRenderer();
bool OnRender(...);

regards
zerochen
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Re: The latest SVN bugs thread

Post by hybrid »

These functions are automatically virtual, but it is probably good style to have it in those files as well.
zerochen
Posts: 273
Joined: Wed Jan 07, 2009 1:17 am
Location: Germany

Re: The latest SVN bugs thread

Post by zerochen »

just for understanding whether i think right:
if the destructor of CD3D9ShaderMaterialRenderer isnt virtual, it will not be called if a class derived from it
like CD3D9HLSLMaterialRenderer does. so it has to be virtual. isnt it?
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Re: The latest SVN bugs thread

Post by hybrid »

No, virtual is automatically inherited. Since the destructor of the base class (IMaterialRenderer) is virtual, all descendants are as well. This also holds for all other "normal" methods. Hence, adding this keyword in the descendant classes is nice to have, just to know whether it's virtual without looking into the bbase classes, but it's not necessary.
zerochen
Posts: 273
Joined: Wed Jan 07, 2009 1:17 am
Location: Germany

Re: The latest SVN bugs thread

Post by zerochen »

ah ok thanks for clearing up:)
ACE247
Posts: 704
Joined: Tue Mar 16, 2010 12:31 am

Re: The latest SVN bugs thread

Post by ACE247 »

Anyone look at the MeshViewer Example recently? Since about 4410(I think) Using 4415 right now. The model debug info is an insane mess! That excludes bounding box calculations for collisions though. Mostly it seems purely cosmetical, but massively annoying, also happens in a different App of mine on the GUI, the lines always draw up from the bottom/top right corner of the gui objects.
Edit: This does not happen on my Linux Box, only on my Windows Laptop. So likely there may be some external troubles.

Image

Oh and a Happy Merry Christmas to Everyone! :D
zerochen
Posts: 273
Joined: Wed Jan 07, 2009 1:17 am
Location: Germany

Re: The latest SVN bugs thread

Post by zerochen »

hi,

example 3 is broken with the lastest rev (only opengl). it seems that the textures arent resetted.

regards
zerochen
Nadro
Posts: 1648
Joined: Sun Feb 19, 2006 9:08 am
Location: Warsaw, Poland

Re: The latest SVN bugs thread

Post by Nadro »

Thanks for a reports. I'll check it tomorrow :)
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
Nadro
Posts: 1648
Joined: Sun Feb 19, 2006 9:08 am
Location: Warsaw, Poland

Re: The latest SVN bugs thread

Post by Nadro »

2 bugs fixed :)

I have to say that bug reported by zerochen also exist in other drivers with smaller effect (texture parameters eg. filtering aren't updated). For example scene have 2 nodes with the same SMaterial, but other SMaterialLayer values. In current drivers code (OGL is already improved) both nodes will render with the same material and mostly with the same textures parameters (eg filtering)! because textures parameters are updated only once in OnSetMaterial/setBasicRenderStates, second time a setBasicRenderStates will be not call because from a compare SMaterial operator perspective these 2 nodes use the same material. Thats why I moved textures update to OnRender method. With a cache system this method is cheap, so we can call this on each OnRender without performance drop.
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Re: The latest SVN bugs thread

Post by hybrid »

The SMaterialLayer shoudl contain only those filters which are set per texture, and not per material. This would update them always when the texture cache checks if the correct textures are loaded. So far we made a little too many calls to the drivers maybe, but IMHO all these settings were correctly made.
ACE247
Posts: 704
Joined: Tue Mar 16, 2010 12:31 am

Re: The latest SVN bugs thread

Post by ACE247 »

Thanks for the quick work Nadro!
Once again all is wonderful in the land of irrlicht. :D
Nadro
Posts: 1648
Joined: Sun Feb 19, 2006 9:08 am
Location: Warsaw, Poland

Re: The latest SVN bugs thread

Post by Nadro »

@Hybrid
Yep I know, but currently when the texture cache checks if the correct textures are loaded, texture is applied, but filtering etc not, because all parameters are updated in setBasicRenderStates (which is depend on SMaterial, not SMaterialLayer). Only setActiveTexture and OnRender methods are currently ok for update texture states, thats why we'll have to move code related to textures from setBasicRenderStates to setActiveTexture. In future I probably will move and integrate setTextureRenderStates with setActiveTexture in OGL driver, so all internal drivers organization will be unified again.
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
Post Reply