Code Monkey home page Code Monkey logo

ogrecave / ogre-next Goto Github PK

View Code? Open in Web Editor NEW
998.0 46.0 224.0 755.5 MB

aka ogre v2 - scene-oriented, flexible 3D C++ engine

Home Page: https://ogrecave.github.io/ogre-next/api/latest

License: Other

CMake 1.09% Rich Text Format 0.01% C++ 83.57% Objective-C++ 2.19% C 9.63% Python 1.79% GLSL 0.01% Objective-C 1.02% Shell 0.05% Batchfile 0.09% HTML 0.20% Makefile 0.01% Java 0.02% MAXScript 0.31% CSS 0.01% NASL 0.02%
vulkan graphics opengl direct3d11 metal

ogre-next's People

Contributors

al2950 avatar assaframan avatar brendor avatar dainiusvaiksnys avatar darksylinc avatar davidjrogers avatar davidrogers-unity avatar dkosmari avatar dyunchik avatar eugenegff avatar holocronweaver avatar jorrit-de-vries avatar jwwalker avatar mimon avatar mosfet80 avatar noamgat avatar paroj avatar philiplb avatar praetor avatar quiasmo avatar rileya avatar sajty avatar sasurobert avatar sinbad avatar spacegaier avatar taatt4 avatar thenicker avatar wolfmanfx avatar xissburg avatar ybalrid avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ogre-next's Issues

[OGRE-440] Update so workspaces dont have to be defined in same file as nodes

[reporter="al2950", created="Tue, 14 Oct 2014 12:21:40 +0200"]

This is minor point, but at the moment you have to define all the compositor nodes you want to use in the same file as the workspace is defined. It would be much tidier to be able to have them separate.

Either a script inheritance type thing, or have a different extensions for workspaces & nodes.

Any thoughts...!?

MacOSx build fails with xcode 10 beta

System Information

  • Ogre Version: 2.1 branch
  • Operating System / Platform: macOSx
  • RenderSystem: openGL3

Detailled description

I am building Ogre xcode project from source with such commands:
cmake -D OGRE_BUILD_RENDERSYSTEM_METAL=1 -D OGRE_USE_BOOST=0 -D OGRE_CONFIG_THREAD_PROVIDER=0 -D OGRE_CONFIG_THREADS=0 -D OGRE_BUILD_SAMPLES2=1 -D OGRE_UNITY_BUILD=1 -D OGRE_SIMD_NEON=0 -D OGRE_BUILD_TESTS=0 -D OGRE_SIMD_SSE2=0 -G Xcode ..

and I get GL3Plus errors

Ogre.log

In file included from /Users/dkr/Documents/Bitbucket/ogre/ogre2.1/RenderSystems/GL3Plus/src/windowing/OSX/OgreOSXCocoaContext.mm:29:
In file included from /Users/dkr/Documents/Bitbucket/ogre/ogre2.1/RenderSystems/GL3Plus/include/windowing/OSX/OgreOSXCocoaContext.h:31:
In file included from /Users/dkr/Documents/Bitbucket/ogre/ogre2.1/RenderSystems/GL3Plus/include/OgreGL3PlusContext.h:32:
In file included from /Users/dkr/Documents/Bitbucket/ogre/ogre2.1/RenderSystems/GL3Plus/include/OgreGL3PlusPrerequisites.h:80:
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl3ext.h:187:77: error: expected function body after function declarator
GLAPI void APIENTRY glVertexAttribDivisorARB (GLuint index, GLuint divisor) OPENGL_DEPRECATED(10.6, 10.14);
^
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl3ext.h:249:104: error: expected function body after function declarator
GLAPI void APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label) OPENGL_DEPRECATED(10.6, 10.14);
^
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl3ext.h:250:119: error: expected function body after function declarator
GLAPI void APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label) OPENGL_DEPRECATED(10.6, 10.14);
^
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl3ext.h:259:81: error: expected function body after function declarator
GLAPI void APIENTRY glInsertEventMarkerEXT (GLsizei length, const char *marker) OPENGL_DEPRECATED(10.6, 10.14);
^
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl3ext.h:260:79: error: expected function body after function declarator
GLAPI void APIENTRY glPushGroupMarkerEXT (GLsizei length, const char *marker) OPENGL_DEPRECATED(10.6, 10.14);
^
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl3ext.h:261:48: error: expected function body after function declarator
GLAPI void APIENTRY glPopGroupMarkerEXT (void) OPENGL_DEPRECATED(10.6, 10.14);
^
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl3ext.h:271:69: error: expected function body after function declarator
GLAPI void APIENTRY glDepthBoundsEXT (GLclampd zmin, GLclampd zmax) OPENGL_DEPRECATED(10.6, 10.14);
^
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl3ext.h:307:47: error: expected function body after function declarator
GLAPI void APIENTRY glFlushRenderAPPLE (void) OPENGL_DEPRECATED(10.6, 10.14);
^
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl3ext.h:308:48: error: expected function body after function declarator
GLAPI void APIENTRY glFinishRenderAPPLE (void) OPENGL_DEPRECATED(10.6, 10.14);
^
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl3ext.h:309:40: error: expected function body after function declarator
GLAPI void APIENTRY glSwapAPPLE (void) OPENGL_DEPRECATED(10.6, 10.14);
^
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl3ext.h:319:94: error: expected function body after function declarator
GLAPI GLenum APIENTRY glObjectPurgeableAPPLE (GLenum objectType, GLuint name, GLenum option) OPENGL_DEPRECATED(10.6, 10.14);
^
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl3ext.h:320:96: error: expected function body after function declarator
GLAPI GLenum APIENTRY glObjectUnpurgeableAPPLE (GLenum objectType, GLuint name, GLenum option) OPENGL_DEPRECATED(10.6, 10.14);
^
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl3ext.h:321:111: error: expected function body after function declarator
GLAPI void APIENTRY glGetObjectParameterivAPPLE (GLenum objectType, GLuint name, GLenum pname, GLint *params) OPENGL_DEPRECATED(10.6, 10.14);
^
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl3ext.h:339:96: error: expected function body after function declarator
GLAPI void APIENTRY glTextureRangeAPPLE (GLenum target, GLsizei length, const GLvoid *pointer) OPENGL_DEPRECATED(10.6, 10.14);
^
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl3ext.h:340:99: error: expected function body after function declarator
GLAPI void APIENTRY glGetTexParameterPointervAPPLE (GLenum target, GLenum pname, GLvoid **params) OPENGL_DEPRECATED(10.6, 10.14);
^
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl3ext.h:353:47: error: expected function body after function declarator
GLAPI void APIENTRY glTextureBarrierNV (void) OPENGL_DEPRECATED(10.6, 10.14);
^
/Users/dkr/Documents/Bitbucket/ogre/ogre2.1/RenderSystems/GL3Plus/src/windowing/OSX/OgreOSXCocoaContext.mm:56:13: warning: 'copyAttributesFromContext:withMask:' is deprecated: first deprecated in macOS 10.8 [-Wdeprecated-declarations]
[cloneCtx copyAttributesFromContext:mNSGLContext withMask:0];
^
In file included from /Users/dkr/Documents/Bitbucket/ogre/ogre2.1/RenderSystems/GL3Plus/src/windowing/OSX/OgreOSXCocoaContext.mm:29:
In file included from /Users/dkr/Documents/Bitbucket/ogre/ogre2.1/RenderSystems/GL3Plus/include/windowing/OSX/OgreOSXCocoaContext.h:32:
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSOpenGL.h:225:1: note: 'copyAttributesFromContext:withMask:' has been explicitly marked deprecated here

  • (void)copyAttributesFromContext:(NSOpenGLContext *)context withMask:(GLbitfield)mask NS_DEPRECATED_MAC(10_0, 10_8);
    ^
    1 warning and 16 errors generated.

Ogre vs Unity BRDF

I am trying to get the similar render results on Ogre and on Unity.
but I am getting different results, please have a look on this thread

Unity_vs_Ogre

Also, I was comparing the Unity shader source code and the Ogre shader (BRDFs_piece_ps.glsl), from my understanding, Unity is using something similar to Default BRDF (not the Default | Uncorrelated) but with an optimized different math. (documentation suggest to use DefaultUncorrelated to get Unity results)
(Note: on that function on unity shader, they have a #if 0, so they are not using the more correct math)

I was trying to change the Ogre shader for the "Smith GGX Height-Correlated" term but it didn't get the results I expect.

Could you clarify about this shader differences?
Which one is more physical correct?

[OGRE-421] Missing glGetError call causing "Error prior to using GLSL Program Object: validation successfull" log spam

[reporter="hhyyrylainen", created="Mon, 7 Jul 2014 21:30:20 +0200"]

When using custom shaders my log is constantly spammed with "Error prior to using GLSL Program Object: Validation successfull" messages. There are no graphical glitches and the shader is working correctly. After using break on OpenGL error I found that the function in OgreGLRenderSystem.cpp called GLRenderSystem::_setPointSpritesEnabled doesn't check has the opengl call made by it caused an error. This causes the shader binding code report the error. I fixed this by adding glGetError(); after line 1548. There have been discussion on the forums about a similar issue before and it was, too, caused by a missing get error call (http://www.ogre3d.org/forums/viewtopic.php?f=2&t=44132&start=25)

Cleanup warnings

Visual Studio (64-bit) generates a ton of warnings, even on public headers meant to be included by users.

They need to be cleaned up

In the case that only silencing them is enough (because they're too trivial and too global), consider if they could be put these #pragmas in OgreHeaderPrefix and OgreHeaderSuffix which are included in every header in Ogre.

EmptyProject needs revision

This is for 2-1 branch:

I am trying to follow the "EmptyProject" example, trying to build it multiple ways...
Looks like this example project it is not updated:
The CMake is coping all .libs to Plugins folders for each bin/target path
but the source code is looking for the plugins.cfg / plugins_d.cfg on the bin/Data path

Call frameEnded inside VaoManager if required

As mentioned in this forum thread https://forums.ogre3d.org/viewtopic.php?f=25&t=95092#p545907
there is an exception if rendering performed and VaoManager::_update ends up increasing the frame number before calling SceneManager::_frameEnded Hlms::frameEnded.

This was extremely rare in Ogre 2.1 because one would need to call VaoManager::_update explicitly, but in 2.2 it can happen as a side-effect of waiting a texture to finish streaming.

My idea is to call these two functions from inside VaoManager::_update if they haven't been already.

The issue is taking me long is that there are some (rare) edge cases that need to be handled (and if they're not, it would be extremely difficult to understand what's going wrong when things go wrong):

The extreme edge case is if VaoManager::update gets called right between Hlms::preparePassHash (i.e. in RenderQueue::renderPassPrepare or in RenderQueue::renderSingleObject) and Hlms::postCommandBufferExecution

Because if that happens (we call frameEnded in between), then we can't guarantee rendering will be glitch-free, as the dynamic BufferPacked will have been filled with the data, but when calling mCommandBuffer->execute() and postCommandBufferExecution, we will be binding BufferPacked with the wrong binding offset and thus the GPU would read old/garbage data.

I'm thinking of adding a simple boolean in RenderQueue::renderPassPrepare i.e. mRenderingStarted. And if VaoManager::update calls frameEnded while this boolean is true, trigger an assert.

Although this does not handle the edge case, it explicitly can tell us what went wrong.
And as a rule we should not call VaoManager::_update in the middle of rendering (i.e. move it outside!!!), or do some BufferPacked magic to move the frame index backwards/forward to point to the correct offset (though this is hard and very error prone)

GraphicsSystem.h:17:21: fatal error: SDL.h: No such file or directory

This is related to 2-1 banch:
I am trying to build the "EmptyProject".
I am able to build Ogre project and install it. It builds the examples etc.
I am able to run the Cmake in the "EmptyProject" to generate the makefiles.

In the cmake-gui I can see the SDL2_DIR pointing to "/usr/lib/x86_64-linux-gnu/cmake/SDL2"

But it fails to build. It looks like the SDL is detected but the include is not correctly added to include paths of the project.

I am using latest Linux Mint (Ubuntu based).

[OGRE-405] Could not compile samples

[reporter="Ogre.Transporter", created="Thu, 27 Mar 2014 10:19:13 +0100"]

Sample_DeferredShading

1>C:\Sources\OGRE\Samples\DeferredShading\include\DeferredLightCP.h(18): fatal error C1083: Cannot open include file: 'OgreCompositorInstance.h': No such file or directory
1>c:\sources\ogre\samples\deferredshading\include\ListenerFactoryLogic.h(18): fatal error C1083: Cannot open include file: 'OgreCompositorInstance.h': No such file or directory
1>..\..\..\..\Sources\OGRE\Samples\DeferredShading\src\DLight.cpp(285): error C2039: 'isShadowTechniqueInUse' : is not a member of 'Ogre::SceneManager'
1> C:\Sources\OGRE\OgreMain\include\OgreSceneManager.h(256) : see declaration of 'Ogre::SceneManager'
1>..\..\..\..\Sources\OGRE\Samples\DeferredShading\src\DLight.cpp(335): error C2661: 'Ogre::Camera::Camera' : no overloaded function takes 2 arguments
1>..\..\..\..\Sources\OGRE\Samples\DeferredShading\src\DLight.cpp(338): error C2039: 'getShadowCameraSetup' : is not a member of 'Ogre::SceneManager'
1> C:\Sources\OGRE\OgreMain\include\OgreSceneManager.h(256) : see declaration of 'Ogre::SceneManager'
1>..\..\..\..\Sources\OGRE\Samples\DeferredShading\src\DLight.cpp(338): error C2227: left of '->getShadowCamera' must point to class/struct/union/generic type
1>C:\Sources\OGRE\Samples\DeferredShading\include\DeferredShading.h(42): fatal error C1083: Cannot open include file: 'OgreCompositorInstance.h': No such file or directory
1>c:\sources\ogre\samples\deferredshading\include\DeferredShading.h(42): fatal error C1083: Cannot open include file: 'OgreCompositorInstance.h': No such file or directory

Sample_ShaderSystem

1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1166): error C2065: 'PSSMShadowCameraSetup' : undeclared identifier
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1166): error C2065: 'pssmSetup' : undeclared identifier
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1166): error C2061: syntax error : identifier 'PSSMShadowCameraSetup'
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1167): error C2065: 'pssmSetup' : undeclared identifier
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1167): error C2227: left of '->calculateSplitPoints' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1168): error C2065: 'pssmSetup' : undeclared identifier
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1168): error C2227: left of '->setSplitPadding' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1169): error C2065: 'pssmSetup' : undeclared identifier
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1169): error C2227: left of '->setOptimalAdjustFactor' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1170): error C2065: 'pssmSetup' : undeclared identifier
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1170): error C2227: left of '->setOptimalAdjustFactor' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1171): error C2065: 'pssmSetup' : undeclared identifier
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1171): error C2227: left of '->setOptimalAdjustFactor' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1178): error C2653: 'PSSMShadowCameraSetup' : is not a class or namespace name
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1178): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1178): error C2143: syntax error : missing ';' before '&'
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1178): error C2065: 'srcSplitPoints' : undeclared identifier
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1178): error C2065: 'pssmSetup' : undeclared identifier
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1178): error C2227: left of '->getSplitPoints' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1181): error C2065: 'srcSplitPoints' : undeclared identifier
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1181): error C2228: left of '.size' must have class/struct/union
1> type is ''unknown-type''
1>..\..\..\..\Sources\OGRE\Samples\ShaderSystem\src\ShaderSystem.cpp(1183): error C2065: 'srcSplitPoints' : undeclared identifier

Sample_SSAO

1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(147): error C2039: 'setCompositorEnabled' : is not a member of 'Ogre::CompositorManager2'
1> C:\Sources\OGRE\OgreMain\include\Compositor/OgreCompositorManager2.h(94) : see declaration of 'Ogre::CompositorManager2'
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(148): error C2039: 'setCompositorEnabled' : is not a member of 'Ogre::CompositorManager2'
1> C:\Sources\OGRE\OgreMain\include\Compositor/OgreCompositorManager2.h(94) : see declaration of 'Ogre::CompositorManager2'
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(150): error C2039: 'setCompositorEnabled' : is not a member of 'Ogre::CompositorManager2'
1> C:\Sources\OGRE\OgreMain\include\Compositor/OgreCompositorManager2.h(94) : see declaration of 'Ogre::CompositorManager2'
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(151): error C2039: 'removeCompositor' : is not a member of 'Ogre::CompositorManager2'
1> C:\Sources\OGRE\OgreMain\include\Compositor/OgreCompositorManager2.h(94) : see declaration of 'Ogre::CompositorManager2'
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(155): error C2039: 'setCompositorEnabled' : is not a member of 'Ogre::CompositorManager2'
1> C:\Sources\OGRE\OgreMain\include\Compositor/OgreCompositorManager2.h(94) : see declaration of 'Ogre::CompositorManager2'
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(156): error C2039: 'removeCompositor' : is not a member of 'Ogre::CompositorManager2'
1> C:\Sources\OGRE\OgreMain\include\Compositor/OgreCompositorManager2.h(94) : see declaration of 'Ogre::CompositorManager2'
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(161): error C2039: 'setCompositorEnabled' : is not a member of 'Ogre::CompositorManager2'
1> C:\Sources\OGRE\OgreMain\include\Compositor/OgreCompositorManager2.h(94) : see declaration of 'Ogre::CompositorManager2'
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(162): error C2039: 'removeCompositor' : is not a member of 'Ogre::CompositorManager2'
1> C:\Sources\OGRE\OgreMain\include\Compositor/OgreCompositorManager2.h(94) : see declaration of 'Ogre::CompositorManager2'
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(199): error C2039: 'addCompositor' : is not a member of 'Ogre::CompositorManager2'
1> C:\Sources\OGRE\OgreMain\include\Compositor/OgreCompositorManager2.h(94) : see declaration of 'Ogre::CompositorManager2'
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(200): error C2039: 'setCompositorEnabled' : is not a member of 'Ogre::CompositorManager2'
1> C:\Sources\OGRE\OgreMain\include\Compositor/OgreCompositorManager2.h(94) : see declaration of 'Ogre::CompositorManager2'
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(200): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(206): error C2039: 'addCompositor' : is not a member of 'Ogre::CompositorManager2'
1> C:\Sources\OGRE\OgreMain\include\Compositor/OgreCompositorManager2.h(94) : see declaration of 'Ogre::CompositorManager2'
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(206): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(207): error C2039: 'setCompositorEnabled' : is not a member of 'Ogre::CompositorManager2'
1> C:\Sources\OGRE\OgreMain\include\Compositor/OgreCompositorManager2.h(94) : see declaration of 'Ogre::CompositorManager2'
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(207): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(215): error C2039: 'addCompositor' : is not a member of 'Ogre::CompositorManager2'
1> C:\Sources\OGRE\OgreMain\include\Compositor/OgreCompositorManager2.h(94) : see declaration of 'Ogre::CompositorManager2'
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(215): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(216): error C2039: 'setCompositorEnabled' : is not a member of 'Ogre::CompositorManager2'
1> C:\Sources\OGRE\OgreMain\include\Compositor/OgreCompositorManager2.h(94) : see declaration of 'Ogre::CompositorManager2'
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(216): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(221): error C2039: 'setCompositorEnabled' : is not a member of 'Ogre::CompositorManager2'
1> C:\Sources\OGRE\OgreMain\include\Compositor/OgreCompositorManager2.h(94) : see declaration of 'Ogre::CompositorManager2'
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(221): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(222): error C2039: 'setCompositorEnabled' : is not a member of 'Ogre::CompositorManager2'
1> C:\Sources\OGRE\OgreMain\include\Compositor/OgreCompositorManager2.h(94) : see declaration of 'Ogre::CompositorManager2'
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(222): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(429): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(429): error C2227: left of '->setBackgroundColour' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(484): error C2065: 'compositorManager' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(484): error C2227: left of '->setCompositorEnabled' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(484): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(486): error C2065: 'compositorManager' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(486): error C2227: left of '->setCompositorEnabled' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(486): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(595): error C2065: 'compositorManager' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(595): error C2227: left of '->setCompositorEnabled' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(595): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(597): error C2065: 'compositorManager' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(597): error C2227: left of '->setCompositorEnabled' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(597): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(700): error C2065: 'compositorManager' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(700): error C2227: left of '->setCompositorEnabled' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(700): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(701): error C2065: 'compositorManager' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(701): error C2227: left of '->setCompositorEnabled' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(701): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(710): error C2065: 'compositorManager' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(710): error C2227: left of '->addCompositor' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(710): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(711): error C2065: 'compositorManager' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(711): error C2227: left of '->setCompositorEnabled' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(711): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(714): error C2039: 'setPosition' : is not a member of 'Ogre::Light'
1> c:\sources\ogre\ogremain\include\OgreLight.h(70) : see declaration of 'Ogre::Light'
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(720): error C2065: 'compositorManager' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(720): error C2227: left of '->setCompositorEnabled' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(720): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(721): error C2065: 'compositorManager' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(721): error C2227: left of '->removeCompositor' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(721): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(730): error C2065: 'compositorManager' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(730): error C2227: left of '->setCompositorEnabled' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(730): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(802): error C2065: 'compositorManager' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(802): error C2227: left of '->removeCompositor' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(802): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(808): error C2065: 'compositorManager' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(808): error C2227: left of '->addCompositor' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(808): error C2065: 'mViewport' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(809): error C2065: 'compositorManager' : undeclared identifier
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(809): error C2227: left of '->setCompositorEnabled' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>C:\Sources\OGRE\Samples\SSAO\include\SSAO.h(809): error C2065: 'mViewport' : undeclared identifier

Sample_Terrain

1>C:\Sources\OGRE\Samples\Terrain\include\Terrain.h(611): error C2027: use of undefined type 'Ogre::PSSMShadowCameraSetup'
1> C:\Sources\OGRE\Components\Terrain\include\OgreTerrainMaterialGeneratorA.h(37) : see declaration of 'Ogre::PSSMShadowCameraSetup'
1>C:\Sources\OGRE\Samples\Terrain\include\Terrain.h(611): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Sources\OGRE\Samples\Terrain\include\Terrain.h(611): error C2143: syntax error : missing ';' before '&'
1>C:\Sources\OGRE\Samples\Terrain\include\Terrain.h(611): error C2065: 'splitPointList' : undeclared identifier
1>C:\Sources\OGRE\Samples\Terrain\include\Terrain.h(612): error C2440: 'static_cast' : cannot convert from 'Ogre::ShadowCameraSetup *' to 'Ogre::PSSMShadowCameraSetup *'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>C:\Sources\OGRE\Samples\Terrain\include\Terrain.h(612): error C2227: left of '->getSplitPoints' must point to class/struct/union/generic type
1>C:\Sources\OGRE\Samples\Terrain\include\Terrain.h(615): error C2065: 'splitPointList' : undeclared identifier
1>C:\Sources\OGRE\Samples\Terrain\include\Terrain.h(695): error C2440: 'static_cast' : cannot convert from 'Ogre::ShadowCameraSetup *' to 'Ogre::PSSMShadowCameraSetup *'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

[OGRE-493] CMAKE regex breaks builds in certain conditions

[reporter="portaloffreedom", created="Sun, 19 Jul 2015 15:54:07 +0200"]

my project folder path contains a double +, which breaks the buid system

This is the commands that I runned:

$ mkdir build && cd build
$ cmake ..

[...]

RegularExpression::compile(): Nested *?+.
RegularExpression::compile(): Error in compile.
CMake Error at OgreMain/CMakeLists.txt:443 (string):
string sub-command REGEX, mode REPLACE failed to compile regex
"((/home/matteo/progetti/c+/ogre/OgreMain|/home/matteo/progetti/c+/ogre/build)/)?(include|src)/".

[...]

โ€“ Configuring incomplete, errors occurred!
See also "/home/matteo/progetti/c++/ogre/build/CMakeFiles/CMakeOutput.log".
See also "/home/matteo/progetti/c++/ogre/build/CMakeFiles/CMakeError.log".

Changing the path from /home/matteo/progetti/c++/ogre/ to /home/matteo/progetti/cpp/ogre/ fixes the problem.
I think anyway that this issue should be solved as I suppose having only one * or one + in the path could break the build in a totally not understandable way.

[OGRE-454] Implement GetSceneDepthRange more generically

[reporter="al2950", created="Sun, 9 Nov 2014 23:10:45 +0100"]

Currently SceneDepth only works if there is a shadow node in the pass. Furthermore SceneDepth uses the ShadowSceneDepth code path which is a little confusing when first looking at it.

Suggest implementing a separate GetSceneDepth which works with the current set rendering camera instead of querying the pass shadow node. The scene depth should be the intersection of the near/far planes with the current scene AABB. However I am not sure where these results should be cached (if at all), perhaps the camera, sceneManager, or current compositor node?

SEGV occurred when rendering was looping for a long time and no operation.

Hi,

I'm using Ogre 2.0 for mission critical systems.

SEGV occurred when rendering was looping for a long time and no operation.

***** environment ****
OS : RHEL 6 Compatible
GPU : NVIDIA Quadro M5000
RenderSystem : OpenGL 2.x
`Drawing on Render Window created with Java (SWT + GTK2)`
commit : 349b4dcd8f6e210f6e9da185286128cd73740d40
**********************

Details are shown below.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
(gdb) bt
#0  0x000000359f8328e5 in raise () from /lib64/libc.so.6
#1  0x000000359f8340c5 in abort () from /lib64/libc.so.6
#2  0x00007f71812a9795 in os::abort(bool) () from /usr/java/jdk1.8.0_66/jre/lib/amd64/server/libjvm.so
#3  0x00007f7181447e23 in VMError::report_and_die() () from /usr/java/jdk1.8.0_66/jre/lib/amd64/server/libjvm.so
#4  0x00007f71812aefbf in JVM_handle_linux_signal () from /usr/java/jdk1.8.0_66/jre/lib/amd64/server/libjvm.so
#5  0x00007f71812a5753 in signalHandler(int, siginfo*, void*) () from /usr/java/jdk1.8.0_66/jre/lib/amd64/server/libjvm.so
#6  <signal handler called>
#7  begin (this=0x0) at /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_vector.h:435
#8  Ogre::ObjectMemoryManager::getNumRenderQueues (this=0x0)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Math/Array/OgreObjectMemoryManager.cpp:177
#9  0x00007f67989fde63 in Ogre::SceneManager::updateAllLodsThread (this=0x7f6756803bc0, request=..., threadIdx=140081810357872)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:2159
#10 0x00007f67568085f8 in ?? ()
#11 0x00007f6756808640 in ?? ()
#12 0x00007f6756808618 in ?? ()
#13 0x00007f67989ff0fe in Ogre::SceneManager::_updateWorkerThread (this=0x7f67568b6a80, threadHandle=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5473
#14 0x00007f67989ff1cd in updateWorkerThread (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5426
#15 Ogre::updateWorkerThread_internal (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5428
#16 0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#17 0x000000359f8e894d in clone () from /lib64/libc.so.6

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
(gdb) frame 8
#8  Ogre::ObjectMemoryManager::getNumRenderQueues (this=0x0)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Math/Array/OgreObjectMemoryManager.cpp:177
177                ArrayMemoryManagerVec::const_iterator begin= mMemoryManagers.begin();
(gdb) print *this
Cannot access memory at address 0x0
(gdb)
 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 

173            //-----------------------------------------------------------------------------------
174            size_t ObjectMemoryManager::getNumRenderQueues() const
175            {
176                size_t retVal = -1;
177                ArrayMemoryManagerVec::const_iterator begin= mMemoryManagers.begin(); //#<--
178                ArrayMemoryManagerVec::const_iterator itor = mMemoryManagers.begin();
179                ArrayMemoryManagerVec::const_iterator end  = mMemoryManagers.end();
180       
181                while( itor != end )
182                {
183                    if( itor->getUsedMemory() )
184                        retVal = itor - begin;
185                    ++itor;
186                }
187       
188                return retVal + 1;
189            }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
 
(gdb) up
#9  0x00007f67989fde63 in Ogre::SceneManager::updateAllLodsThread (this=0x7f6756803bc0, request=..., threadIdx=140081810357872)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:2159
2159              const size_t numRenderQueues = memoryManager->getNumRenderQueues();
 
========================================================================================================================
2147      //-----------------------------------------------------------------------
2148      void SceneManager::updateAllLodsThread( const UpdateLodRequest &request, size_t threadIdx )
2149      {
2150          LodStrategy *lodStrategy = LodStrategyManager::getSingleton().getDefaultStrategy();
2151     
2152          const Camera *lodCamera = request.lodCamera;
2153          ObjectMemoryManagerVec::const_iterator it = request.objectMemManager->begin();
2154          ObjectMemoryManagerVec::const_iterator en = request.objectMemManager->end();
2155     
2156          while( it != en )
2157          {
2158              ObjectMemoryManager *memoryManager = *it;
2159              const size_t numRenderQueues = memoryManager->getNumRenderQueues(); //#<--
2160     
2161              size_t firstRq = std::min<size_t>( request.firstRq, numRenderQueues );
2162              size_t lastRq  = std::min<size_t>( request.lastRq,  numRenderQueues );
2163     
2164              for( size_t i=firstRq; i<lastRq; ++i )
2165              {
2166                  ObjectData objData;
2167                  const size_t totalObjs = memoryManager->getFirstObjectData( objData, i );
2168     
2169                  //Distribute the work evenly across all threads (not perfect), taking into
2170                  //account we need to distribute in multiples of ARRAY_PACKED_REALS
2171                  size_t numObjs  = ( totalObjs + (mNumWorkerThreads-1) ) / mNumWorkerThreads;
2172                  numObjs         = ( (numObjs + ARRAY_PACKED_REALS - 1) / ARRAY_PACKED_REALS ) *
2173                                      ARRAY_PACKED_REALS;
2174     
2175                  const size_t toAdvance = std::min( threadIdx * numObjs, totalObjs );
2176     
2177                  //Prevent going out of bounds (usually in the last threadIdx, or
2178                  //when there are less entities than ARRAY_PACKED_REALS
2179                  numObjs = std::min( numObjs, totalObjs - toAdvance );
2180                  objData.advancePack( toAdvance / ARRAY_PACKED_REALS );
2181     
2182                  lodStrategy->lodUpdateImpl( numObjs, objData, lodCamera, request.lodBias );
2183              }
2184     
2185              ++it;
2186          }
2187      }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 

(gdb) print *request.objectMemManager
$42 = std::vector of length 2, capacity 2 = {0x7f6756803d08, 0x7f6756803db8}

Two elements..

(gdb) print *request.objectMemManager._M_impl._M_start[0]
 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
$39 = {<Ogre::ArrayMemoryManager::RebaseListener> = {_vptr.RebaseListener = 0x7f6798fc89b0}, mMemoryManagers =
    std::vector of length 51, capacity 64 = {{<Ogre::ArrayMemoryManager> = {_vptr.ArrayMemoryManager = 0x7f6798fc8cc0, mMemoryPools =
    std::vector of length 10, capacity 10 = {0x7f6756822e00 "\230|\201Vg\177", 0x7f67568231e0 "\270%\202Vg\177", 0x7f67568235e0 "",
    0x7f6756824100 "", 0x7f6756824c40 "", 0x7f6756824e60 "", 0x7f6756825080 "\377\377\177\177", 0x7f67568252a0 "\377\377\377\377",
    0x7f67568254c0 "", 0x7f67568256e0 "\377\377\377\377"}, mElementsMemSizes = 0x7f6798ce0d60, mCleanupRoutines = 0x7f6798fc8c60,
        mTotalMemoryMultiplier = 88, mUsedMemory = 1, mMaxMemory = 116, mMaxHardLimit = 18446744073709551612, mCleanupThreshold = 100,
        mAvailableSlots = std::vector of length 0, capacity 0, mRebaseListener = 0x7f6756803d08, mLevel = 0, mManagerType =
    Ogre::ArrayMemoryManager::ObjectDataType, static MAX_MEMORY_SLOTS = 18446744073709551595}, mDummyNode = 0x7f67567feab8, mDummyObject =
    0x7f6756808a18, static ElementsMemSize = {8, 8, 24, 24, 4, 4, 4, 4, 4, 4}, static ObjCleanupRoutines = {
    0x7f6798c848a0 <Ogre::cleanerFlat(char*, size_t, char*, size_t, size_t, size_t, size_t)>,
    0x7f6798c848a0 <Ogre::cleanerFlat(char*, size_t, char*, size_t, size_t, size_t, size_t)>,
    0x7f6798c84690 <Ogre::cleanerArrayAabb(char*, size_t, char*, size_t, size_t, size_t, size_t)>,
    0x7f6798c84690 <Ogre::cleanerArrayAabb(char*, size_t, char*, size_t, size_t, size_t, size_t)>,
    0x7f6798c848a0 <Ogre::cleanerFlat(char*, size_t, char*, size_t, size_t, size_t, size_t)>,
    0x7f6798c848a0 <Ogre::cleanerFlat(char*, size_t, char*, size_t, size_t, size_t, size_t)>,
    0x7f6798c848a0 <Ogre::cleanerFlat(char*, size_t, char*, size_t, size_t, size_t, size_t)>,
    0x7f6798c848a0 <Ogre::cleanerFlat(char*, size_t, char*, size_t, size_t, size_t, size_t)>,
    0x7f6798c848a0 <Ogre::cleanerFlat(char*, size_t, char*, size_t, size_t, size_t, size_t)>,
    0x7f6798c848a0 <Ogre::cleanerFlat(char*, size_t, char*, size_t, size_t, size_t, size_t)>}}, {<Ogre::ArrayMemoryManager> = {
        _vptr.ArrayMemoryManager = 0x7f6798fc8cc0, mMemoryPools = std::vector of length 10, capacity 10 = {
    0x7f675682fa60 "\270\352\177Vg\177", 0x7f675682fe40 "\030\212\200Vg\177", 0x7f6756830240 "", 0x7f6756830d60 "", 0x7f67568318a0 "",
    0x7f6756831ac0 "", 0x7f6756831ce0 "", 0x7f6756831f00 "", 0x7f6756832120 "", 0x7f6756832340 ""}, mElementsMemSizes = 0x7f6798ce0d60,
        mCleanupRoutines = 0x7f6798fc8c60, mTotalMemoryMultiplier = 88, mUsedMemory = 0, mMaxMemory = 116, mMaxHardLimit =
    18446744073709551612, mCleanupThreshold = 100, mAvailableSlots = std::vector of length 0, capacity 0, mRebaseListener = 0x7f6756803d08,
        mLevel = 1, mManagerType = Ogre::ArrayMemoryManager::ObjectDataType, static MAX_MEMORY_SLOTS = 18446744073709551595}, mDummyNode =
    0x7f67567feab8, mDummyObject = 0x7f6756808a18, static ElementsMemSize = <same as static member of an already seen type>,
      static ObjCleanupRoutines = <same as static member of an already seen type>}, {<Ogre::ArrayMemoryManager> = {_vptr.ArrayMemoryManager =
    0x7f6798fc8cc0, mMemoryPools = std::vector of length 10, capacity 10 = {0x7f6756832960 "\270\352\177Vg\177",
    0x7f6756832d60 "\030\212\200Vg\177", 0x7f6756833140 "", 0x7f6756833c80 "", 0x7f67568347a0 "", 0x7f67568349c0 "", 0x7f6756834be0 "",
    0x7f6756834e00 "", 0x7f6756835020 "", 0x7f6756835240 ""}, mElementsMemSizes = 0x7f6798ce0d60, mCleanupRoutines = 0x7f6798fc8c60,
        mTotalMemoryMultiplier = 88, mUsedMemory = 0, mMaxMemory = 116, mMaxHardLimit = 18446744073709551612, mCleanupThreshold = 100,
        mAvailableSlots = std::vector of length 0, capacity 0, mRebaseListener = 0x7f6756803d08, mLevel = 2, mManagerType =
    Ogre::ArrayMemoryManager::ObjectDataType, static MAX_MEMORY_SLOTS = 18446744073709551595}, mDummyNode = 0x7f67567feab8, mDummyObject =
    0x7f6756808a18, static ElementsMemSize = <same as static member of an already seen type>,
      static ObjCleanupRoutines = <same as static member of an already seen type>}, {<Ogre::ArrayMemoryManager> = {_vptr.ArrayMemoryManager =
    0x7f6798fc8cc0, mMemoryPools = std::vector of length 10, capacity 10 = {0x7f6756835460 "\270\352\177Vg\177",
    0x7f6756835860 "\030\212\200Vg\177", 0x7f6756835c40 "", 0x7f6756836780 "", 0x7f67568372a0 "", 0x7f67568374c0 "", 0x7f67568376e0 "",
    0x7f6756837900 "", 0x7f6756837b20 "", 0x7f6756837d40 ""}, mElementsMemSizes = 0x7f6798ce0d60, mCleanupRoutines = 0x7f6798fc8c60,
        mTotalMemoryMultiplier = 88, mUsedMemory = 0, mMaxMemory = 116, mMaxHardLimit = 18446744073709551612, mCleanupThreshold = 100,
        mAvailableSlots = std::vector of length 0, capacity 0, mRebaseListener = 0x7f6756803d08, mLevel = 3, mManagerType =
    Ogre::ArrayMemoryManager::ObjectDataType, static MAX_MEMORY_SLOTS = 18446744073709551595}, mDummyNode = 0x7f67567feab8, mDummyObject =
    0x7f6756808a18, static ElementsMemSize = <same as static member of an already seen type>,
      static ObjCleanupRoutines = <same as static member of an already seen type>}, {<Ogre::ArrayMemoryManager> = {_vptr.ArrayMemoryManager =
    0x7f6798fc8cc0, mMemoryPools = std::vector of length 10, capacity 10 = {0x7f6756838780 "\270\352\177Vg\177",
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
 
(gdb) print *request.objectMemManager._M_impl._M_start[1]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
$44 = {<Ogre::ArrayMemoryManager::RebaseListener> = {_vptr.RebaseListener = 0x7f6798fc89b0}, mMemoryManagers =
    std::vector of length 0, capacity 0, mTotalObjects = 0, mDummyNode = 0x7f6756808d78, mDummyTransformPtrs = {mIndex = 0 '\000', mParents =
    0x0, mOwner = 0x0, mPosition = 0x0, mOrientation = 0x0, mScale = 0x0, mDerivedPosition = 0x7f6755edd9e0, mDerivedOrientation =
    0x7f6755ddd7a0, mDerivedScale = 0x7f6755edda60, mDerivedTransform = 0x7f6756808c60, mInheritOrientation = 0x0, mInheritScale = 0x0},
  mDummyObject = 0x7f6756808f88, mMemoryManagerType = Ogre::SCENE_STATIC, mTwinMemoryManager = 0x7f6756803d08}
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 

Looks like the iterator has been destroyed.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
#10 0x00007f67568085f8 in ?? ()
#11 0x00007f6756808640 in ?? ()
#12 0x00007f6756808618 in ?? ()
#13 0x00007f67989ff0fe in Ogre::SceneManager::_updateWorkerThread (this=0x7f67568b6a80, threadHandle=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5473
#14 0x00007f67989ff1cd in updateWorkerThread (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5426
#15 Ogre::updateWorkerThread_internal (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5428
#16 0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#17 0x000000359f8e894d in clone () from /lib64/libc.so.6
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 

Iterator seems to be provided by "Ogre::SceneManager::mEntitiesMemoryManagerCulledList", so I checked all threads.
(java thread is omitted)


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
(gdb) thread apply all bt
 
Thread 397 (Thread 0x7f7181c9b700 (LWP 14620)):
#0  0x000000359f8df293 in poll () from /lib64/libc.so.6
#1  0x00007f68f179a8c8 in Java_org_eclipse_swt_internal_gtk_OS_Call(__complex __complex int0_t) ()
   from /home/teeepesasys/.swt/lib/linux/x86_64/libswt-pi-gtk-4629.so
#2  0x00007f718354ee4c in ?? ()
#3  0x00007f6efa40f868 in ?? ()
#4  0x00007f690e24d208 in ?? ()
#5  0x00007f6efaa398b8 in ?? ()
#6  0x00007f692d638120 in ?? ()
#7  0x00007f692d6380e8 in ?? ()
#8  0x00007f690e7f78c8 in ?? ()
#9  0x00007f690e7f78c8 in ?? ()
#10 0x00007fffa8705814 in ?? ()
#11 0x00007f7185578b18 in ?? ()
#12 0x0000000000000000 in ?? ()
 
Thread 376 (Thread 0x7f674d639700 (LWP 21501)):
#0  0x00000035a000b43c in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x00007f6798c93ab9 in boost::condition_variable_any::wait<boost::unique_lock<boost::recursive_mutex> > (this=0x7f67567e3880, m=...)
    at /usr/local/boost_1_58_0/include/boost/thread/pthread/condition_variable.hpp:184
#2  0x00007f6798c9258f in Ogre::DefaultWorkQueue::waitForNextRequest (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:157
#3  0x00007f6798c92324 in Ogre::DefaultWorkQueue::_threadMain (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:185
#4  0x00007f679863ddf4 in thread_proxy ()
   from /home/teeepesa/ANMDK/prg/cur/ap/lib/nativelibs/boost_1_58_0/lib/libboost_thread.so.1.58.0
#5  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#6  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 375 (Thread 0x7f674e03a700 (LWP 21500)):
#0  0x00000035a000b43c in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x00007f6798c93ab9 in boost::condition_variable_any::wait<boost::unique_lock<boost::recursive_mutex> > (this=0x7f67567e3880, m=...)
    at /usr/local/boost_1_58_0/include/boost/thread/pthread/condition_variable.hpp:184
#2  0x00007f6798c9258f in Ogre::DefaultWorkQueue::waitForNextRequest (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:157
#3  0x00007f6798c92324 in Ogre::DefaultWorkQueue::_threadMain (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:185
#4  0x00007f679863ddf4 in thread_proxy ()
   from /home/teeepesa/ANMDK/prg/cur/ap/lib/nativelibs/boost_1_58_0/lib/libboost_thread.so.1.58.0
#5  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#6  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 374 (Thread 0x7f675123f700 (LWP 21495)):
#0  0x00000035a000b43c in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x00007f6798c93ab9 in boost::condition_variable_any::wait<boost::unique_lock<boost::recursive_mutex> > (this=0x7f67567e3880, m=...)
    at /usr/local/boost_1_58_0/include/boost/thread/pthread/condition_variable.hpp:184
#2  0x00007f6798c9258f in Ogre::DefaultWorkQueue::waitForNextRequest (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:157
#3  0x00007f6798c92324 in Ogre::DefaultWorkQueue::_threadMain (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:185
#4  0x00007f679863ddf4 in thread_proxy ()
   from /home/teeepesa/ANMDK/prg/cur/ap/lib/nativelibs/boost_1_58_0/lib/libboost_thread.so.1.58.0
#5  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#6  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 367 (Thread 0x7f6753a43700 (LWP 21490)):
#0  0x00000035a000b43c in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x00007f6798c93ab9 in boost::condition_variable_any::wait<boost::unique_lock<boost::recursive_mutex> > (this=0x7f67567e3880, m=...)
    at /usr/local/boost_1_58_0/include/boost/thread/pthread/condition_variable.hpp:184
#2  0x00007f6798c9258f in Ogre::DefaultWorkQueue::waitForNextRequest (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:157
#3  0x00007f6798c92324 in Ogre::DefaultWorkQueue::_threadMain (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:185
#4  0x00007f679863ddf4 in thread_proxy ()
   from /home/teeepesa/ANMDK/prg/cur/ap/lib/nativelibs/boost_1_58_0/lib/libboost_thread.so.1.58.0
#5  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#6  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 362 (Thread 0x7f674c237700 (LWP 21504)):
#0  0x00000035a000b43c in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x00007f6798c93ab9 in boost::condition_variable_any::wait<boost::unique_lock<boost::recursive_mutex> > (this=0x7f67567e3880, m=...)
    at /usr/local/boost_1_58_0/include/boost/thread/pthread/condition_variable.hpp:184
#2  0x00007f6798c9258f in Ogre::DefaultWorkQueue::waitForNextRequest (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:157
#3  0x00007f6798c92324 in Ogre::DefaultWorkQueue::_threadMain (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:185
#4  0x00007f679863ddf4 in thread_proxy ()
   from /home/teeepesa/ANMDK/prg/cur/ap/lib/nativelibs/boost_1_58_0/lib/libboost_thread.so.1.58.0
#5  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#6  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 361 (Thread 0x7f674f43c700 (LWP 21498)):
#0  0x00000035a000b43c in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x00007f6798c93ab9 in boost::condition_variable_any::wait<boost::unique_lock<boost::recursive_mutex> > (this=0x7f67567e3880, m=...)
    at /usr/local/boost_1_58_0/include/boost/thread/pthread/condition_variable.hpp:184
#2  0x00007f6798c9258f in Ogre::DefaultWorkQueue::waitForNextRequest (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:157
#3  0x00007f6798c92324 in Ogre::DefaultWorkQueue::_threadMain (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:185
#4  0x00007f679863ddf4 in thread_proxy ()
   from /home/teeepesa/ANMDK/prg/cur/ap/lib/nativelibs/boost_1_58_0/lib/libboost_thread.so.1.58.0
#5  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#6  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 348 (Thread 0x7f674b836700 (LWP 21505)):
#0  0x00000035a000b43c in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x00007f6798c93ab9 in boost::condition_variable_any::wait<boost::unique_lock<boost::recursive_mutex> > (this=0x7f67567e3880, m=...)
    at /usr/local/boost_1_58_0/include/boost/thread/pthread/condition_variable.hpp:184
#2  0x00007f6798c9258f in Ogre::DefaultWorkQueue::waitForNextRequest (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:157
#3  0x00007f6798c92324 in Ogre::DefaultWorkQueue::_threadMain (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:185
#4  0x00007f679863ddf4 in thread_proxy ()
   from /home/teeepesa/ANMDK/prg/cur/ap/lib/nativelibs/boost_1_58_0/lib/libboost_thread.so.1.58.0
#5  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#6  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 347 (Thread 0x7f675083e700 (LWP 21496)):
#0  0x00000035a000b43c in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x00007f6798c93ab9 in boost::condition_variable_any::wait<boost::unique_lock<boost::recursive_mutex> > (this=0x7f67567e3880, m=...)
    at /usr/local/boost_1_58_0/include/boost/thread/pthread/condition_variable.hpp:184
#2  0x00007f6798c9258f in Ogre::DefaultWorkQueue::waitForNextRequest (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:157
#3  0x00007f6798c92324 in Ogre::DefaultWorkQueue::_threadMain (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:185
#4  0x00007f679863ddf4 in thread_proxy ()
   from /home/teeepesa/ANMDK/prg/cur/ap/lib/nativelibs/boost_1_58_0/lib/libboost_thread.so.1.58.0
#5  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#6  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 345 (Thread 0x7f674ea3b700 (LWP 21499)):
#0  0x00000035a000b43c in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x00007f6798c93ab9 in boost::condition_variable_any::wait<boost::unique_lock<boost::recursive_mutex> > (this=0x7f67567e3880, m=...)
    at /usr/local/boost_1_58_0/include/boost/thread/pthread/condition_variable.hpp:184
#2  0x00007f6798c9258f in Ogre::DefaultWorkQueue::waitForNextRequest (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:157
#3  0x00007f6798c92324 in Ogre::DefaultWorkQueue::_threadMain (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:185
#4  0x00007f679863ddf4 in thread_proxy ()
   from /home/teeepesa/ANMDK/prg/cur/ap/lib/nativelibs/boost_1_58_0/lib/libboost_thread.so.1.58.0
#5  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#6  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 336 (Thread 0x7f679b8f8700 (LWP 20711)):
#0  0x00000035a000c2cc in pthread_barrier_wait () from /lib64/libpthread.so.0
#1  0x00007f67989f93a2 in Ogre::SceneManager::updateAllLods (this=
    0x7f6756803bc0, lodCamera=<value optimized out>,
    lodBias=<value optimized out>, firstRq=<value optimized out>,
    lastRq=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:2199
#2  0x00007f6798c7b1f6 in Ogre::CompositorPassScene::execute (this=
    0x7f6755689ad8, lodCamera=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Compositor/Pass/PassScene/OgreCompositorPassScene.cpp:130
#3  0x00007f6798c709e0 in Ogre::CompositorNode::_update (this=0x7f67567f8198,
    lodCamera=0x0, sceneManager=0x7f6756803bc0)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Compositor/OgreCompositorNode.cpp:462
#4  0x00007f6798c65632 in Ogre::CompositorWorkspace::_update (this=
    0x7f67568023d8)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Compositor/OgreCompositorWorkspace.cpp:519
#5  0x00007f6798c6754d in Ogre::CompositorManager2::_update (this=
    0x7f67567f5308)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Compositor/OgreCompositorManager2.cpp:543
#6  0x00007f67989e0db7 in Ogre::Root::_updateAllRenderTargets (this=
    0x7f67567dd4a8)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreRoot.cpp:1470
#7  0x00007f67989e0f35 in Ogre::Root::renderOneFrame (this=0x7f67567dd4a8)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreRoot.cpp:1003
#8  0x00007f6756f81f23 in ?? ()
#9  0x00007f687c7bd000 in ?? ()
#10 0x00007f679b8f7450 in ?? ()
#11 0x00007f679b8f74a0 in ?? ()
#12 0x00007f687c7bd1f8 in ?? ()
#13 0x00007f679b8f74f0 in ?? ()
#14 0x0000000000000000 in ?? ()
 
Thread 332 (Thread 0x7f6754e45700 (LWP 21488)):
#0  0x00000035a000b43c in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x00007f6798c93ab9 in boost::condition_variable_any::wait<boost::unique_lock<boost::recursive_mutex> > (this=0x7f67567e3880, m=...)
    at /usr/local/boost_1_58_0/include/boost/thread/pthread/condition_variable.hpp:184
#2  0x00007f6798c9258f in Ogre::DefaultWorkQueue::waitForNextRequest (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:157
#3  0x00007f6798c92324 in Ogre::DefaultWorkQueue::_threadMain (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:185
#4  0x00007f679863ddf4 in thread_proxy ()
   from /home/teeepesa/ANMDK/prg/cur/ap/lib/nativelibs/boost_1_58_0/lib/libboost_thread.so.1.58.0
#5  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#6  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 322 (Thread 0x7f6751c40700 (LWP 21494)):
#0  0x00000035a000b43c in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x00007f6798c93ab9 in boost::condition_variable_any::wait<boost::unique_lock<boost::recursive_mutex> > (this=0x7f67567e3880, m=...)
    at /usr/local/boost_1_58_0/include/boost/thread/pthread/condition_variable.hpp:184
#2  0x00007f6798c9258f in Ogre::DefaultWorkQueue::waitForNextRequest (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:157
#3  0x00007f6798c92324 in Ogre::DefaultWorkQueue::_threadMain (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:185
#4  0x00007f679863ddf4 in thread_proxy ()
   from /home/teeepesa/ANMDK/prg/cur/ap/lib/nativelibs/boost_1_58_0/lib/libboost_thread.so.1.58.0
#5  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#6  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 307 (Thread 0x7f674ad35700 (LWP 21533)):
#0  0x00000035a000c2cc in pthread_barrier_wait () from /lib64/libpthread.so.0
#1  0x00007f67989ff10a in Ogre::SceneManager::_updateWorkerThread (this=
    0x7f6756803bc0, threadHandle=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5493
#2  0x00007f67989ff1cd in updateWorkerThread (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5426
#3  Ogre::updateWorkerThread_internal (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5428
#4  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#5  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 256 (Thread 0x7f6752641700 (LWP 21493)):
#0  0x00000035a000b43c in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x00007f6798c93ab9 in boost::condition_variable_any::wait<boost::unique_lock<boost::recursive_mutex> > (this=0x7f67567e3880, m=...)
    at /usr/local/boost_1_58_0/include/boost/thread/pthread/condition_variable.hpp:184
#2  0x00007f6798c9258f in Ogre::DefaultWorkQueue::waitForNextRequest (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:157
#3  0x00007f6798c92324 in Ogre::DefaultWorkQueue::_threadMain (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:185
#4  0x00007f679863ddf4 in thread_proxy ()
   from /home/teeepesa/ANMDK/prg/cur/ap/lib/nativelibs/boost_1_58_0/lib/libboost_thread.so.1.58.0
#5  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#6  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 252 (Thread 0x7f6754444700 (LWP 21489)):
#0  0x00000035a000b43c in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x00007f6798c93ab9 in boost::condition_variable_any::wait<boost::unique_lock<boost::recursive_mutex> > (this=0x7f67567e3880, m=...)
    at /usr/local/boost_1_58_0/include/boost/thread/pthread/condition_variable.hpp:184
#2  0x00007f6798c9258f in Ogre::DefaultWorkQueue::waitForNextRequest (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:157
#3  0x00007f6798c92324 in Ogre::DefaultWorkQueue::_threadMain (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:185
#4  0x00007f679863ddf4 in thread_proxy ()
   from /home/teeepesa/ANMDK/prg/cur/ap/lib/nativelibs/boost_1_58_0/lib/libboost_thread.so.1.58.0
#5  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#6  0x000000359f8e894d in clone () from /lib64/libc.so.6

Thread 137 (Thread 0x7f674cc38700 (LWP 21503)):
#0  0x00000035a000b43c in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x00007f6798c93ab9 in boost::condition_variable_any::wait<boost::unique_lock<boost::recursive_mutex> > (this=0x7f67567e3880, m=...)
    at /usr/local/boost_1_58_0/include/boost/thread/pthread/condition_variable.hpp:184
#2  0x00007f6798c9258f in Ogre::DefaultWorkQueue::waitForNextRequest (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:157
#3  0x00007f6798c92324 in Ogre::DefaultWorkQueue::_threadMain (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:185
#4  0x00007f679863ddf4 in thread_proxy ()
   from /home/teeepesa/ANMDK/prg/cur/ap/lib/nativelibs/boost_1_58_0/lib/libboost_thread.so.1.58.0
#5  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#6  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 121 (Thread 0x7f674fe3d700 (LWP 21497)):
#0  0x00000035a000b43c in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x00007f6798c93ab9 in boost::condition_variable_any::wait<boost::unique_lock<boost::recursive_mutex> > (this=0x7f67567e3880, m=...)
    at /usr/local/boost_1_58_0/include/boost/thread/pthread/condition_variable.hpp:184
#2  0x00007f6798c9258f in Ogre::DefaultWorkQueue::waitForNextRequest (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:157
#3  0x00007f6798c92324 in Ogre::DefaultWorkQueue::_threadMain (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:185
#4  0x00007f679863ddf4 in thread_proxy ()
   from /home/teeepesa/ANMDK/prg/cur/ap/lib/nativelibs/boost_1_58_0/lib/libboost_thread.so.1.58.0
#5  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#6  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 105 (Thread 0x7f6753042700 (LWP 21491)):
#0  0x00000035a000b43c in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x00007f6798c93ab9 in boost::condition_variable_any::wait<boost::unique_lock<boost::recursive_mutex> > (this=0x7f67567e3880, m=...)
    at /usr/local/boost_1_58_0/include/boost/thread/pthread/condition_variable.hpp:184
#2  0x00007f6798c9258f in Ogre::DefaultWorkQueue::waitForNextRequest (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:157
#3  0x00007f6798c92324 in Ogre::DefaultWorkQueue::_threadMain (this=
    0x7f67567e3398)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Threading/OgreDefaultWorkQueueStandard.cpp:185
#4  0x00007f679863ddf4 in thread_proxy ()
   from /home/teeepesa/ANMDK/prg/cur/ap/lib/nativelibs/boost_1_58_0/lib/libboost_thread.so.1.58.0
#5  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#6  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 23 (Thread 0x7f6741726700 (LWP 21552)):
#0  0x00000035a000c2cc in pthread_barrier_wait () from /lib64/libpthread.so.0
#1  0x00007f67989ff10a in Ogre::SceneManager::_updateWorkerThread (this=
    0x7f6756803bc0, threadHandle=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5493
#2  0x00007f67989ff1cd in updateWorkerThread (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5426
#3  Ogre::updateWorkerThread_internal (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5428
#4  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#5  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 19 (Thread 0x7f6742127700 (LWP 21551)):
#0  0x00000035a000c2cc in pthread_barrier_wait () from /lib64/libpthread.so.0
#1  0x00007f67989ff10a in Ogre::SceneManager::_updateWorkerThread (this=
    0x7f6756803bc0, threadHandle=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5493
#2  0x00007f67989ff1cd in updateWorkerThread (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5426
#3  Ogre::updateWorkerThread_internal (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5428
#4  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#5  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 15 (Thread 0x7f6747b30700 (LWP 21540)):
#0  0x00000035a000c2cc in pthread_barrier_wait () from /lib64/libpthread.so.0
#1  0x00007f67989ff10a in Ogre::SceneManager::_updateWorkerThread (this=
    0x7f6756803bc0, threadHandle=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5493
#2  0x00007f67989ff1cd in updateWorkerThread (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5426
#3  Ogre::updateWorkerThread_internal (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5428
#4  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#5  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 14 (Thread 0x7f6743f2a700 (LWP 21546)):
#0  0x00000035a000c2cc in pthread_barrier_wait () from /lib64/libpthread.so.0
#1  0x00007f67989ff10a in Ogre::SceneManager::_updateWorkerThread (this=
    0x7f6756803bc0, threadHandle=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5493
#2  0x00007f67989ff1cd in updateWorkerThread (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5426
#3  Ogre::updateWorkerThread_internal (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5428
#4  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#5  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 12 (Thread 0x7f674492b700 (LWP 21545)):
#0  0x00000035a000c2cc in pthread_barrier_wait () from /lib64/libpthread.so.0
#1  0x00007f67989ff10a in Ogre::SceneManager::_updateWorkerThread (this=
    0x7f6756803bc0, threadHandle=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5493
#2  0x00007f67989ff1cd in updateWorkerThread (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5426
#3  Ogre::updateWorkerThread_internal (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5428
#4  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#5  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 11 (Thread 0x7f674672e700 (LWP 21542)):
#0  0x00000035a000c2cc in pthread_barrier_wait () from /lib64/libpthread.so.0
#1  0x00007f67989ff10a in Ogre::SceneManager::_updateWorkerThread (this=
    0x7f6756803bc0, threadHandle=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5493
#2  0x00007f67989ff1cd in updateWorkerThread (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5426
#3  Ogre::updateWorkerThread_internal (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5428
#4  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#5  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 10 (Thread 0x7f674532c700 (LWP 21544)):
#0  0x00000035a000c2cc in pthread_barrier_wait () from /lib64/libpthread.so.0
#1  0x00007f67989ff10a in Ogre::SceneManager::_updateWorkerThread (this=
    0x7f6756803bc0, threadHandle=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5493
#2  0x00007f67989ff1cd in updateWorkerThread (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5426
#3  Ogre::updateWorkerThread_internal (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5428
#4  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#5  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 9 (Thread 0x7f6749933700 (LWP 21537)):
#0  0x00000035a000c2cc in pthread_barrier_wait () from /lib64/libpthread.so.0
#1  0x00007f67989ff10a in Ogre::SceneManager::_updateWorkerThread (this=
    0x7f6756803bc0, threadHandle=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5493
#2  0x00007f67989ff1cd in updateWorkerThread (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5426
#3  Ogre::updateWorkerThread_internal (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5428
#4  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#5  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 8 (Thread 0x7f6748f32700 (LWP 21538)):
#0  0x00000035a000c2cc in pthread_barrier_wait () from /lib64/libpthread.so.0
#1  0x00007f67989ff10a in Ogre::SceneManager::_updateWorkerThread (this=
    0x7f6756803bc0, threadHandle=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5493
#2  0x00007f67989ff1cd in updateWorkerThread (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5426
#3  Ogre::updateWorkerThread_internal (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5428
#4  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#5  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 7 (Thread 0x7f6742b28700 (LWP 21550)):
#0  0x00000035a000c2cc in pthread_barrier_wait () from /lib64/libpthread.so.0
#1  0x00007f67989ff10a in Ogre::SceneManager::_updateWorkerThread (this=
    0x7f6756803bc0, threadHandle=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5493
#2  0x00007f67989ff1cd in updateWorkerThread (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5426
#3  Ogre::updateWorkerThread_internal (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5428
#4  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#5  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 5 (Thread 0x7f674712f700 (LWP 21541)):
#0  0x00000035a000c2cc in pthread_barrier_wait () from /lib64/libpthread.so.0
#1  0x00007f67989ff10a in Ogre::SceneManager::_updateWorkerThread (this=
    0x7f6756803bc0, threadHandle=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5493
#2  0x00007f67989ff1cd in updateWorkerThread (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5426
#3  Ogre::updateWorkerThread_internal (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5428
#4  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#5  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 4 (Thread 0x7f6745d2d700 (LWP 21543)):
#0  0x00000035a000c2cc in pthread_barrier_wait () from /lib64/libpthread.so.0
#1  0x00007f67989ff10a in Ogre::SceneManager::_updateWorkerThread (this=
    0x7f6756803bc0, threadHandle=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5493
#2  0x00007f67989ff1cd in updateWorkerThread (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5426
#3  Ogre::updateWorkerThread_internal (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5428
#4  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#5  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 3 (Thread 0x7f6743529700 (LWP 21548)):
#0  0x00000035a000c2cc in pthread_barrier_wait () from /lib64/libpthread.so.0
#1  0x00007f67989ff10a in Ogre::SceneManager::_updateWorkerThread (this=
    0x7f6756803bc0, threadHandle=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5493
#2  0x00007f67989ff1cd in updateWorkerThread (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5426
#3  Ogre::updateWorkerThread_internal (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5428
#4  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#5  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 2 (Thread 0x7f6748531700 (LWP 21539)):
#0  0x00000035a000c2cc in pthread_barrier_wait () from /lib64/libpthread.so.0
#1  0x00007f67989ff10a in Ogre::SceneManager::_updateWorkerThread (this=
    0x7f6756803bc0, threadHandle=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5493
#2  0x00007f67989ff1cd in updateWorkerThread (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5426
#3  Ogre::updateWorkerThread_internal (argName=<value optimized out>)
   at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5428
#4  0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#5  0x000000359f8e894d in clone () from /lib64/libc.so.6
 
Thread 1 (Thread 0x7f674a334700 (LWP 21536)):
#0  0x000000359f8328e5 in raise () from /lib64/libc.so.6
#1  0x000000359f8340c5 in abort () from /lib64/libc.so.6
#2  0x00007f71812a9795 in os::abort(bool) ()
   from /usr/java/jdk1.8.0_66/jre/lib/amd64/server/libjvm.so
#3  0x00007f7181447e23 in VMError::report_and_die() ()
   from /usr/java/jdk1.8.0_66/jre/lib/amd64/server/libjvm.so
#4  0x00007f71812aefbf in JVM_handle_linux_signal ()
   from /usr/java/jdk1.8.0_66/jre/lib/amd64/server/libjvm.so
#5  0x00007f71812a5753 in signalHandler(int, siginfo*, void*) ()
   from /usr/java/jdk1.8.0_66/jre/lib/amd64/server/libjvm.so
#6  <signal handler called>
#7  begin (this=0x0)
    at /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_vector.h:435
#8  Ogre::ObjectMemoryManager::getNumRenderQueues (this=0x0)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/Math/Array/OgreObjectMemoryManager.cpp:177
#9  0x00007f67989fde63 in Ogre::SceneManager::updateAllLodsThread (this=
    0x7f6756803bc0, request=..., threadIdx=140081810357872)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:2159
#10 0x00007f67568085f8 in ?? ()
#11 0x00007f6756808640 in ?? ()
#12 0x00007f6756808618 in ?? ()
#13 0x00007f67989ff0fe in Ogre::SceneManager::_updateWorkerThread (this=
    0x7f67568b6a80, threadHandle=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5473
#14 0x00007f67989ff1cd in updateWorkerThread (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5426
#15 Ogre::updateWorkerThread_internal (argName=<value optimized out>)
    at /var/lib/jenkins/workspace/Asianux_build-Middleware-ogre/ogre/OgreMain/src/OgreSceneManager.cpp:5428
#16 0x00000035a0007851 in start_thread () from /lib64/libpthread.so.0
#17 0x000000359f8e894d in clone () from /lib64/libc.so.6
(gdb)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 

It looks like โ€œThread 336โ€ and โ€œThread 1โ€ are running at the same time.
Is this analysis correct? ?

Improve/lower build time

Ogre takes absurdly long to build.

Ridiculously longer if using C++11 or newer instead of C++98

While Unity builds help a lot to reduce build times, it is not an acceptable solution for Ogre developers.

Suggested solutions:

  • Use iosfwd to reduce STL header inclusions
  • Everything related to iostreams (e.g. LogManager's, Vector3's << operator and co.) should be forward declared, and the implementation should be moved to a few CPP files that handle iostream-related code (iostream is known to bloat everything)
  • Try ClangBuildAnalyzer
  • Try d2cgsummary. I didn't have much luck with it. Perhaps someone is better than me at taking advantage of it
  • Compare the directory diff between ogre and ogre-next. We have a lot more cpp files than ogre. We need to see if we have dead code or pointless files that could be reduced
  • I suspect the custom allocator stuff is causing slowdowns. Ogre 1.x seems to have fixed it with an empty solution. I'm not sure if that's enough to speed up build times, but it may be worth trying
  • VS C++ Build Insights

Strict aliasing and bitcasting

Ogre 2.1+ breaks strict aliasing in several places:

  • Components/Hlms/Pbs/src/OgreHlmsPbs.cpp
  • Components/Hlms/Unlit/src/OgreHlmsUnlit.cpp
  • Samples/2.0/Tutorials/Tutorial_Terrain/src/Terra/Hlms/OgreHlmsTerra.cpp
  • Samples/2.0/Tutorials/Tutorial_Terrain/src/Terra/TerrainCell.cpp
  • OgreMain/src/OgreForward3D.cpp
  • OgreMain/src/OgreForwardPlusBase.cpp

Basically almost every instance where '*reinterpret_cast<>' is used.

There are 4 solutions to it:

  • Ignore it. Use reinterpret_cast and distable strict aliasing
  • memcpy. Compilers may be good at optimizing it. However in Ogre debug performance matters.
  • std::bit_cast, if compiling with C++20
  • Nameless inline union in GCC: #define CAST(type, x) (((union {typeof(x) src; type dst;}*)&(x))->dst) CAST(unsigned short, a) = 4;

Thus it may be easier if we just define a macro that translates to the preferred solution:
gpuPtr[3] = OGRE_BITCAST( uint32, m_parentTerra->m_skirtSize );

This way debug builds could use raw reinterpret_cast while Release mode is built with an alternative option; and the syntax is kept sane

Forward 3D in Orthographic rendering broken

System Information

  • Ogre Version: :2.2:
  • Operating System / Platform: :Windows (7 & 8):
  • RenderSystem: :dx11, assume others, but not tested:
  • GPU: :GTX 980:

Detailled description

It would appear forward 3d things, eg lights, decals etc are broken when using Orthographic rendering. I have only been able to test up to the last revision on bitbucket, but has been broken for a very long time. Earliest revision I have tested is ea7f397

Will continue to look in to it, after I have migrated to Github branches

sRGB on Linux on Intel card

I am running on Linux on a Intel GPU the Sample_PbsMaterials and from what I read in this thread it is not rendering correctly the sRGB (because my image looks darkers / not gamma corrected)
I am able to run Unity3D on my machine and it seems to not suffer from this problem.

Is that still some issue with Ogre?

Graphics: Card: Intel Haswell-ULT Integrated Graphics Controller bus-ID: 00:02.0
Display Server: X.Org 1.18.4 drivers: intel (unloaded: fbdev,vesa) Resolution: [email protected]
GLX Renderer: Mesa DRI Intel Haswell GLX Version: 3.0 Mesa 17.0.7 Direct Rendering: Yes

[Ogre-2.1] Compilation fails (OgrePVRTCCodec.cpp, OgreGrid2DPageStrategy.cpp, OgreGrid3DPageStrategy.cpp)

While working on a Gentoo ebuild for the first major Ogre 2.1 release (congrats on that!), I hit some compilation issues.

One question beforehand: I have to build with

		-DOGRE_BUILD_COMPONENT_PROPERTY=no
		-DOGRE_BUILD_COMPONENT_RTSHADERSYSTEM=no
		-DOGRE_BUILD_RTSHADERSYSTEM_CORE_SHADERS=no
		-DOGRE_BUILD_RTSHADERSYSTEM_EXT_SHADERS=no
		-DOGRE_BUILD_COMPONENT_TERRAIN=no
		-DOGRE_BUILD_COMPONENT_VOLUME=no
		-DOGRE_BUILD_PLUGIN_CG=no

Are these just not ported, yet, or remnants in CMakeLists.txt that can be ignored?

System

  • Gentoo Linux x86_64
  • cmake-3.17.1
  • gcc-9.3.0
  • mesa-20.0.5
  • Build for Intel-Iris

Build Configuration

		-DOGRE_BUILD_COMPONENT_HLMS_PBS=yes
		-DOGRE_BUILD_COMPONENT_HLMS_PBS_MOBILE=no
		-DOGRE_BUILD_COMPONENT_HLMS_UNLIT=yes
		-DOGRE_BUILD_COMPONENT_HLMS_UNLIT_MOBILE=no
		-DOGRE_BUILD_COMPONENT_PAGING=yes
		-DOGRE_BUILD_COMPONENT_PLANAR_REFLECTIONS=yes
		-DOGRE_BUILD_COMPONENT_SCENE_FORMAT=yes
		-DOGRE_BUILD_PLATFORM_NACL=no
		-DOGRE_BUILD_RENDERSYSTEM_GL3PLUS=yes
		-DOGRE_BUILD_RENDERSYSTEM_GLES2=yes
		-DOGRE_BUILD_SAMPLES2=yes
		-DOGRE_BUILD_TESTS=yes
		-DOGRE_BUILD_TOOLS=yes
		-DOGRE_CONFIG_ALLOCATOR=1
		-DOGRE_CONFIG_ENABLE_FINE_LIGHT_MASK_GRANULARITY=yes
		-DOGRE_CONFIG_ENABLE_FREEIMAGE=yes
		-DOGRE_CONFIG_ENABLE_GL_STATE_CACHE_SUPPORT=yes
		-DOGRE_CONFIG_ENABLE_JSON=yes
		-DOGRE_CONFIG_MEMTRACK_DEBUG=no
		-DOGRE_CONFIG_MEMTRACK_RELEASE=no
		-DOGRE_CONFIG_THREADS=2
		-DOGRE_CONFIG_THREAD_PROVIDER=std
		-DOGRE_FULL_RPATH=no
		-DOGRE_INSTALL_DOCS=yes
		-DOGRE_INSTALL_SAMPLES=yes
		-DOGRE_INSTALL_SAMPLES_SOURCE=yes
		-DOGRE_LEGACY_ANIMATIONS=no
		-DOGRE_PROFILING_PROVIDER=none
		-DOGRE_USE_BOOST=no
		-DOGRE_CONFIG_DOUBLE=no

I was able to compile with these settings after applying the following three patches.

OgrePVRTCCodec.cpp

The first error was in OgrePVRTCCodec.cpp, which was just a missing include, so I keep this short.

Error:

/tmp/ogre-next-2.1/OgreMain/src/OgrePVRTCCodec.cpp: In member function โ€˜virtual Ogre::Codec::DecodeResult Ogre::PVRTCCodec::decode(Ogre::DataStreamPtr&) constโ€™:
/tmp/ogre-next-2.1/OgreMain/src/OgrePVRTCCodec.cpp:164:15: error: invalid use of incomplete type โ€˜class Ogre::DataStreamโ€™
  164 |         stream->read(&headerV2, sizeof(PVRTCTexHeaderV2));
      |               ^~

Patch:

--- a/OgreMain/src/OgrePVRTCCodec.cpp	2020-04-27 20:00:44.816974345 +0200
+++ b/OgreMain/src/OgrePVRTCCodec.cpp	2020-04-27 20:03:49.186962841 +0200
@@ -33,6 +33,7 @@
 #include "OgreException.h"
 #include "OgreLogManager.h"
 #include "OgreBitwise.h"
+#include "OgreDataStream.h"
 
 #define FOURCC(c0, c1, c2, c3) (c0 | (c1 << 8) | (c2 << 16) | (c3 << 24))
 #define PVR_TEXTURE_FLAG_TYPE_MASK  0xff

OgreGrid2DPageStrategy.cpp, OgreGrid3DPageStrategy.cpp

Both suffer the same problem, so I only post the error once and then the two patches.

Error:

FAILED: Components/Paging/CMakeFiles/OgrePaging.dir/src/OgreGrid3DPageStrategy.cpp.o 
/usr/lib/ccache/bin/x86_64-pc-linux-gnu-g++
  -DBOOST_THREAD_VERSION=4 -DOGRE_PAGING_EXPORTS -DOgrePaging_EXPORTS
  -D_MT -D_USRDLL -I/tmp/ogre-next-2.1/OgreMain/include -Iinclude -I/usr/include/freetype2
  -I/usr/include/OIS -I/opt/nvidia-cg-toolkit/include/Cg -I/opt/nvidia-cg-toolkit/include
  -I/tmp/ogre-next-2.1 -I/tmp/ogre-next-2.1/Components/Paging/include  -Wall -Winit-self
  -Wno-overloaded-virtual -Wcast-qual -Wwrite-strings -Wextra -Wno-unused-parameter
  -Wshadow -Wno-missing-field-initializers -Wno-long-long -Wno-unused-but-set-parameter
  -march=native -O2 -pipe -ggdb -DOGRE_DEBUG_MODE=0 -Wno-deprecated-copy
  -Wno-class-memaccess -msse -msse2 -fPIC   -fPIC -pthread
  -DOGRE_GCC_VISIBILITY -fvisibility=hidden -fvisibility-inlines-hidden -MD
  -MT Components/Paging/CMakeFiles/OgrePaging.dir/src/OgreGrid3DPageStrategy.cpp.o
  -MF Components/Paging/CMakeFiles/OgrePaging.dir/src/OgreGrid3DPageStrategy.cpp.o.d
  -o Components/Paging/CMakeFiles/OgrePaging.dir/src/OgreGrid3DPageStrategy.cpp.o
  -c /tmp/ogre-next-2.1/Components/Paging/src/OgreGrid3DPageStrategy.cpp
/tmp/ogre-next-2.1/Components/Paging/src/OgreGrid3DPageStrategy.cpp:
    In member function โ€˜virtual void Ogre::Grid3DPageStrategy::updateDebugDisplay(Ogre::Page*, Ogre::SceneNode*)โ€™:
/tmp/ogre-next-2.1/Components/Paging/src/OgreGrid3DPageStrategy.cpp:370:23:
    error: โ€˜class Ogre::Passโ€™ has no member named โ€˜setLightingEnabledโ€™; did you mean โ€˜setLightScissoringEnabledโ€™?
  370 |                 pass->setLightingEnabled(false);
      |                       ^~~~~~~~~~~~~~~~~~
      |                       setLightScissoringEnabled
/tmp/ogre-next-2.1/Components/Paging/src/OgreGrid3DPageStrategy.cpp:372:23:
    error: โ€˜class Ogre::Passโ€™ has no member named โ€˜setDepthWriteEnabledโ€™; did you mean โ€˜setPointSpritesEnabledโ€™?
  372 |                 pass->setDepthWriteEnabled(false);
      |                       ^~~~~~~~~~~~~~~~~~~~
      |                       setPointSpritesEnabled
/tmp/ogre-next-2.1/Components/Paging/src/OgreGrid3DPageStrategy.cpp:386:36:
    error: โ€˜RenderOperationโ€™ has not been declared
  386 |                 mo->begin(matName, RenderOperation::OT_LINE_STRIP);
      |                                    ^~~~~~~~~~~~~~~

Patches:

--- a/Components/Paging/src/OgreGrid2DPageStrategy.cpp	2020-04-28 09:43:23.119894582 +0200
+++ b/Components/Paging/src/OgreGrid2DPageStrategy.cpp	2020-04-28 09:44:00.844892228 +0200
@@ -405,9 +405,9 @@
             {
                 mat = MaterialManager::getSingleton().create(matName, ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
                 Pass* pass = mat->getTechnique(0)->getPass(0);
-                pass->setLightingEnabled(false);
+                //pass->setLightingEnabled(false);
                 pass->setVertexColourTracking(TVC_AMBIENT);
-                pass->setDepthWriteEnabled(false);
+                //pass->setDepthWriteEnabled(false);
                 mat->load();
             }
 
@@ -416,7 +416,7 @@
             if (sn->numAttachedObjects() == 0)
             {
                 mo = p->getParentSection()->getSceneManager()->createManualObject();
-                mo->begin(matName, RenderOperation::OT_LINE_STRIP);
+                mo->begin(matName, OperationType::OT_LINE_STRIP);
             }
             else
             {

and

--- a/Components/Paging/src/OgreGrid3DPageStrategy.cpp	2020-04-28 09:31:06.301940556 +0200
+++ b/Components/Paging/src/OgreGrid3DPageStrategy.cpp	2020-04-28 09:40:51.777904025 +0200
@@ -367,9 +367,9 @@
             {
                 mat = MaterialManager::getSingleton().create(matName, ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
                 Pass* pass = mat->getTechnique(0)->getPass(0);
-                pass->setLightingEnabled(false);
+                //pass->setLightingEnabled(false);
                 pass->setVertexColourTracking(TVC_AMBIENT);
-                pass->setDepthWriteEnabled(false);
+                //pass->setDepthWriteEnabled(false);
                 mat->load();
             }
 
@@ -383,7 +383,7 @@
             else
             {
                 mo = p->getParentSection()->getSceneManager()->createManualObject();
-                mo->begin(matName, RenderOperation::OT_LINE_STRIP);
+                mo->begin(matName, OperationType::OT_LINE_STRIP);
             }
 
             ColourValue vcol = ColourValue::Green;

No Pull Request

I have decided to post an issue rather then creating a pull request, because I know too little about the inner workings of Ogre-2.1 to be sure these patches are sane. Everything compiles fine, now, which is great. But do these changes also end up in a working product?

However, keep up the great work! Ogre was, is, and always will be just awesome!

[OGRE-391] Wrong path after installing header files

[reporter="Ogre.Transporter", created="Sun, 2 Feb 2014 17:59:10 +0100"]

OgreScriptTranslator.h:

#include "OgrePrerequisites.h"
#include "Compositor/OgreCompositorCommon.h"
#include "OgreScriptCompiler.h"
#include "OgreHeaderPrefix.h"

At the moment OgreCompositorCommon.h is not located in a subfolder Compositor. The file is located in the main include folder after install.

[OGRE-496] Missing instantiation for AllocatedObject<SceneCtlAlignPolicy> ?

[reporter="rogual", created="Wed, 12 Aug 2015 21:20:13 +0200"]

MSVC 2013 compiles Ogre just fine, but linking my project to Ogre gives "undefined external Ogre::AllocatedObject::operator new".

Looking through the Ogre code, I noticed this block of template instantiations in OgreMemoryAllocatedObject.cpp:

    template class AllocatedObject<GeneralAllocPolicy>;
    template class AllocatedObject<GeometryAllocPolicy>;
    template class AllocatedObject<AnimationAllocPolicy>;
    template class AllocatedObject<SceneCtlAllocPolicy>;
    template class AllocatedObject<SceneObjAllocPolicy>;
    template class AllocatedObject<ResourceAllocPolicy>;
    template class AllocatedObject<ScriptingAllocPolicy>;
    template class AllocatedObject<RenderSysAllocPolicy>;

Notably, that class is absent. I tried adding it:

    template class AllocatedObject<SceneCtlAlignPolicy>;<br/>

...and now my project links just fine. Not sure if this is an Ogre bug or if this is the right fix.

Implement Irradiance Fields

It is based on DDGI, more material:

First we'll start using the voxelized results from VCT. Afterwards once we have Raytracing, we'll also allow to use Raytracing instead; since both are very similars (with VCT we shoot cones instead of rays)

Update 2019-09-29:

  • Wrote the C++ code, but it still doesn't fill all buffers required by the compute shader. There's probably not much more to do from this end.
  • Started the compute shader. The concept is very simple, but I had a lot of trouble thinking how to best schedule the compute threads and distribute the work. I ended up assigning one thread per ray/cone, and flattening the whole compute (i.e. it's 1D rather than 2D; although strictly speaking we need to use 2D if we exceed more than 65535 workgroups) and de-flattening based on ray index. It was complex because it was hard to translate values back and forth to all these different representations:
    • Irradiance field is a 3D field (3D grid of probes)
    • But the probes are stored in two 2D textures (not 3D)
    • The two 2D textures, depth and colour, have different resolutions! At least depth resolution must be multiple of colour resolution.
    • Each depth pixel can have multiple rays. We force the same number of rays per pixel to all pixels
    • If each probe has a 16x16 depth texture and 8x8 colour texture, that means each colour pixel has 4x the number of rays per pixel.
    • VCT means there's also another 3D texture (with its own resolution)
    • The original DDGI implementation distributed the probe update over multiple frames. In the end, I've decided to allow updates at per probe granularity (i.e. not at per ray granularity), otherwise blending of old and new results becomes too hard (too many synchronization/locking, memory and accuracy trade offs to think about).

Update 2019-10-04:

  • Pixel Shaders for rendering:
    • It works!!! Colour Irradiance Field is working
    • Masking probes behind geometry is also working
    • Depth-aware masking is working, but doesn't produce good results yet. I suspect it's because we're defaulting to one ray per pixel, which forces variance to be 0
    • There are a few artifacts. I suspect it has to do with how we're currently performing the ray(cone) tracing. Our rays/cones are too narrow, thus it can capture distant bright objects with a lot of brightness.

OpenVR: Glitch in RadialDensityMask / Black screen without RadialDensityMask

System Information

  • Ogre Version: 2.2 - 8579b35
  • Operating System / Platform: Gentoo Linux 64-bit
  • RenderSystem: GL3+
  • GPU: NVIDIA GeForce GTX 1080

Detailed description

Hi guys,

Thanks very much for your work on OGRE.

I've used it on a few toy applications in the past and am currently integrating it into a VR application.

I'm having trouble getting the Tutorial_OpenVR sample to work correctly.

Case 1: Latest Code - Crash

The latest code, (both 8579b35 and 52a6f47), crashes with the following error:

An exception has occured: OGRE EXCEPTION(5:ItemIdentityException): Compute Job with name [Hash 0x704694c7] not found in HlmsCompute::findComputeJob at [OGRE_ROOT]/OgreMain/src/OgreHlmsCompute.cpp (line 557)

After defining OGRE_IDSTRING_ALWAYS_READABLE 1, the IdString in question turns out to be: VR/RadialDensityMaskReconstruct.

I've attempted to pass in a computer shader, using HlmsComputeJob::createComputeJob and guessing that /Samples/Media/Compute/VR/Foveated/RadialDensityMaskReconstruct_cs.glsl is the file in question, but I haven't gotten this to work yet.

Case 2: Old Code - Screen Door

In order to find a working example, I dug around in the git history and got these two commits to run, albeit with a significant rendering glitch.

ea3b3f1, 075d36b -> Both run, but with many visual artifacts.

pixelated

Case 3: Hybrid Code - Crash

Finally, I tried combining the latest OGRE code with the "working" Tutorial_OpenVR code,

OGRE commit: 52a6f47
OpenVR_Tutorial commit: ea3b3f1

But this produces the same results as first case, crashing with ItemIdentityException in HlmsCompute::findComputeJob.

Ogre.log & Callstack

Please let me know what I can do to get to the bottom of this. Thank you!

Use relative file postioning in includes

I'm completely new to OGRE and I've been setting up my project according to the official tutorial here. I'm using Arch Linux. I know ogre-next is not very friendly for new users but I'd prefer using ogre-next for learning as it'll force me to get more familiar with how it works. I used setup scripts to setup ogre and installed it using generated ninja files.

#include <OGRE/Ogre.h> gives me an error here saying that "Vao/OgreBufferPacked.h" file does not exist.
I checked locally, it's does (/usr/local/include/OGRE/Vao/OgreBufferPacked.h).

From looking at sources I infer that OGRE is actually the root of included files - by which I mean #include <Ogre.h> would actually include that file in project sources. Problem is that on Linux, it is placed in /usr/local/include/OGRE file which means that all ogre includes have to be prefixed with OGRE/. Prepending OGRE/ to header include paths fixes this issue. Moving the includes outside of 'OGRE' subdirectory would too, but I don't want to pollute my include directory with files unmanaged by the package manager.
What I also find confusing is the usage of " for absolute include paths. From my understanding of C++, " is conventionally used for relative include paths and angled brackets for paths relative to searched include directories (although " falls back to that behaviour so I might be just nitpicking now). Using relative include paths would be much better in cases like these and would make include files resilient to inconsistent placement.

Placing ogre headers directly inside include directory is bad.
Here are some possible solutions:

  • Consider using relative paths in #include "something.h" statements, this would make setting up SDK much simpler.
  • Consider moving includes into OGRE subdirectory (requires much larger refactoring, breaks stuff, not really an option)

While this might be easy to fix with a script prepending OGRE to includes, consider the fact that lots of new users using Linux will face a similar problem and patching files locally is not the best solution.
I might also be doing something wrong in which case most of the issue above doesn't make much sense.

NULL pointer access in HlmsPbs::preparePassHash()

System Information

  • Ogre Version: 2.1unstable
  • Operating System / Platform: Win7 x64, Visual Studio 2015
  • RenderSystem: Direct3D11

Detailled description

Note about this bug report: I'm using 2.1unstable (out of necessity, not my choice) which is pretty old, so the bug I describe may have been fixed already. Also, I don't completely understand the Python-Ogre codebase I have inherited, and it may use Ogre in strange unintended ways. So, this crash may be a consequence of bad design of my codebase rather than Ogre itself.

When enabling a directional light, I get a NULL pointer dereference in HlmsPbs::preparePassHash(), around line 1199 of OgreHlmsPbs.cpp:

  if( i >= shadowCastingDirLights && i < numDirectionalLights )
  {
      while( affectedLights[nonShadowLightIdx] )  <---- CRASH
          ++nonShadowLightIdx;
      light = globalLightList.lights[nonShadowLightIdx++];
      assert( light->getType() == Light::LT_DIRECTIONAL );
  }

affectedLights refers to a std::vector<bool> which is the member variable mAffectedLights of a CompositorShadowNode. mAffectedLights is empty, so affectedLights[nonShadowLightIdx] is out of range.

mAffectedLights is not iinitialized on CompositorShadowNode construction, so it is empty by default. The only code that adds entries to mAffectedLights is the method CompositorShadowNode::clearShadowCastingLights() which ensures mAffectedLights always contains at least one entry, with value "false":

   mAffectedLights.clear();
   //Reserve last place for avoid crashing with static
   //lights that weren't collected into globalLightList
   mAffectedLights.resize( globalLightList.lights.size() + 1u, false );

CompositorShadowNode::clearShadowCastingLights() does not get called before the crash occurs. So I think either:

  • CompositorShadowNode::clearShadowCastingLights() should be called before HlmsPbs::preparePassHash(), or
  • the CompositorShadowNode constructor should add one entry "false" to mAffectedLights, or
  • the code in HlmsPbs::preparePassHash() should guard against mAffectedLights being empty.

I fixed the crash by adding this line to the end of the CompositorShadowNode constructor:

   mAffectedLights.resize( 1u, false );

I don't know if this is correct.

Bones switching to manual on memory cleanup

System Information

  • Ogre Version: 2.1
  • Operating System / Platform: Windows
  • RenderSystem: DirextX11

Detailled description

When the bone memory manager cleanup is performed, the SkeletonInstance manual bones array becomes incorrect as it depends on the bone transform index which can change.
This causes some bones to randomly switch to manual mode causing problems.

Setting up CI

UPDATE:

  • Setup all major branches and not just v2.2
  • Building on MSVC 2015
  • Building on Linux
  • Testing Pull Requests are followed
  • Building on macOS or iOS (probably hardest to setup, low priority)
  • Running Unit Tests (not yet writtten)
  • Deploying nightly builds

ORIGINAL:

Now that we're in Github, we could take advantage of CI integrations!

We have a few dedicated HW for CI, I'm trying to reach David Rogers who is managing those, to get access to these servers.

If we can't, then we'll just use whatever free cloud plans are available.

I'm particularly interested in CI that can follow Pull Requests.

Manually executing the compositor may result in leaks in Metal

While fixing #33 I remembered Root calls CompositorManager2::_update, which calls RenderSystem::updateCompositorManager which calls CompositorManager2::_updateImplementation

The reason for this is that MetalRenderSystem gets the chance to enclose CompositorManager2::_updateImplementation inside an @autorelease tag.

However when we, or our users, manually perform:

workspace->_beginUpdate( forceBeginFrame );
workspace->_update();
workspace->_endUpdate( forceEndFrame );

No such @autorelease enclosure is present.

It appears we need to add a similar function that will perform _update on one or several workspaces; allowing MetalRenderSystem to enclose that call in an autorelease pool

Sample_IesProfiles doesn't work with D3D11 render system

As the title says, Sample_IesProfiles works just with GL render system. If you launch it using D3D11 render system, you get this is the error (also see the attached shader):

Ogre: High-level program 100000000PixelShader_ps encountered an error during loading and is thus not supported.
OGRE EXCEPTION(-2147467259:RenderingAPIException): Cannot compile D3D11 high-level shader 100000000PixelShader_ps Errors:
D:\Development\SDK\OGRE\OGRE\build\x64\bin\Debug\100000000PixelShader_ps.hlsl(495,10): error X3004: undeclared identifier 'lightProfiles'
 in D3D11HLSLProgram::compileMicrocode at D:/Development/SDK/OGRE/OGRE/RenderSystems/Direct3D11/src/OgreD3D11HLSLProgram.cpp (line 569)

In addition, there's a memory leak at line 82 of OgreLightProfiles.cpp:

IesLoader *iesLoader = OGRE_NEW IesLoader( filename, dataStr.c_str() );
mIesData.push_back( iesLoader );

Content of mIesData is never destroyed.

v2-1 failed to build on mac os

System Information

  • Ogre Version: โ” v2-1
  • Operating System / Platform: โ” mac os mojave
  • RenderSystem: โ” opengl

Detailled description

code failed to build on mac os with xcode/clang 10

Ogre.log

the following code fails to build on mac os with clang 10

namespace std
{
    #if __cplusplus < 201103L && OGRE_PLATFORM != OGRE_PLATFORM_EMSCRIPTEN
    namespace tr1
    {__cplusplus
    #endif
        template < typename T >
        struct hash< Ogre::SharedPtr< T > > : hash< T* >
        {
            typedef hash< T* > MyBase;
            typedef Ogre::SharedPtr< T > argument_type;
            typedef size_t result_type;

            result_type operator()( const argument_type& k ) const
            {
                return MyBase::operator()( k.get() );
            }
        };
    #if __cplusplus < 201103L && OGRE_PLATFORM != OGRE_PLATFORM_EMSCRIPTEN
    }
    #endif
}

the compiler complains about the namespace.
the root cause is that __cplusplus is incorrectly set to 199711L

looking at the cmake file:

  set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11")

this code doesn't work at all, because if check make command with make VERBOSE=1, there is no -std=c++11 flag set.

I have to use

cmake -DCMAKE_CXX_FLAGS="-std=c++11 -stdlib=libc++" 

this issue is the same as openscenegraph/OpenSceneGraph#637

Code does not compile with VS2019: internal compiler error

System Information

  • Ogre Version: master (Dec 26 2019)
  • Operating System / Platform: Windows 10 x64
  • RenderSystem:
  • GPU: Nvidia RTX2070

Detailled description

Latest Visual Studio 2017 (vc141) and Visual Studio 2019 latest compiler update (VisualStudio.16.Release/16.4.2+29613.14) both don't like the code that lives in:

OgreMain\src\OgreImageDownsampler.cpp(197,14):
fatal error C1001: An internal error has occurred in the compiler.

The issue has been also reported here:
https://developercommunity.visualstudio.com/content/problem/601701/ogre-v21-source-internal-compiler-error-with-visua.html

Compiler doesn't like when a .cpp module gets recursively included with different set of macro definitions. Proposed workaround is to refactor the code in OgreImageDownsampler.cpp by moving the 'problematic' piece of macro-magic code (that recursively includes itself) -- into its own separate header with a different name. After that refactor all the code compiles successfully and works great.

I'm attaching a proposed .patch below

Ogre.log

N/A

Callstack

N/A

vs2019_compiler_error.patch.txt

Cannot bind cubemap probes to materials using per-pixel PCC

System Information

  • Ogre Version: v2-2-irradiance-field
  • Operating System / Platform: Windows 10 1909
  • RenderSystem: Direct3D11
  • GPU: NVIDIA GeForce GTX 1060

Detailled description

Cannot bind cubemap probes to materials using per-pixel PCC. Steps to reproduce it: just change mPerPixelReflections to true in LocalCubemapsManualProbesGameState::LocalCubemapsManualProbesGameState.

Ogre.log

10:00:26: Creating resource group General
10:00:26: Creating resource group Internal
10:00:26: Creating resource group Autodetect
10:00:26: SceneManagerFactory for type 'DefaultSceneManager' registered.
10:00:26: Registering ResourceManager for type Material
10:00:26: Registering ResourceManager for type Mesh
10:00:26: Registering ResourceManager for type Mesh2
10:00:26: Registering ResourceManager for type OldSkeleton
10:00:26: MovableObjectFactory for type 'ParticleSystem' registered.
10:00:26: ArchiveFactory for archive type FileSystem registered.
10:00:26: ArchiveFactory for archive type Zip registered.
10:00:26: ArchiveFactory for archive type EmbeddedZip registered.
10:00:26: DDS codec registering
10:00:26: FreeImage version: 3.15.3
10:00:26: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
10:00:26: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi,exr,j2k,j2c,jp2,pfm,pct,pict,pic
10:00:26: OITD codec registering
10:00:26: Registering ResourceManager for type HighLevelGpuProgram
10:00:26: MovableObjectFactory for type 'Decal' registered.
10:00:26: MovableObjectFactory for type 'InternalCubemapProbe' registered.
10:00:26: MovableObjectFactory for type 'Entity' registered.
10:00:26: MovableObjectFactory for type 'Item' registered.
10:00:26: MovableObjectFactory for type 'Light' registered.
10:00:26: MovableObjectFactory for type 'Rectangle2Dv2' registered.
10:00:26: MovableObjectFactory for type 'BillboardSet' registered.
10:00:26: MovableObjectFactory for type 'ManualObject2' registered.
10:00:26: MovableObjectFactory for type 'BillboardChain' registered.
10:00:26: MovableObjectFactory for type 'RibbonTrail' registered.
10:00:26: MovableObjectFactory for type 'WireAabb' registered.
10:00:26: Loading library .\RenderSystem_Direct3D11_d
10:00:26: Installing plugin: D3D11 RenderSystem
10:00:26: D3D11: Direct3D11 Rendering Subsystem created.
10:00:26: D3D11: Driver Detection Starts
10:00:26: D3D11: "Intel(R) HD Graphics 630"
10:00:26: D3D11: "NVIDIA GeForce GTX 1060"
10:00:26: D3D11: "Microsoft Basic Render Driver (software)"
10:00:26: D3D11: Driver Detection Ends
10:00:26: Plugin successfully installed
10:00:26: Loading library .\RenderSystem_GL3Plus_d
10:00:26: Installing plugin: GL 3+ RenderSystem
10:00:26: OpenGL 3+ Rendering Subsystem created.
10:00:26: Plugin successfully installed
10:00:26: Loading library .\Plugin_ParticleFX_d
10:00:26: Installing plugin: ParticleFX
10:00:26: Particle Emitter Type 'Point' registered
10:00:26: Particle Emitter Type 'Box' registered
10:00:26: Particle Emitter Type 'Ellipsoid' registered
10:00:26: Particle Emitter Type 'Cylinder' registered
10:00:26: Particle Emitter Type 'Ring' registered
10:00:26: Particle Emitter Type 'HollowEllipsoid' registered
10:00:26: Particle Affector Type 'LinearForce' registered
10:00:26: Particle Affector Type 'ColourFader' registered
10:00:26: Particle Affector Type 'ColourFader2' registered
10:00:26: Particle Affector Type 'ColourImage' registered
10:00:26: Particle Affector Type 'ColourInterpolator' registered
10:00:26: Particle Affector Type 'Scaler' registered
10:00:26: Particle Affector Type 'Rotator' registered
10:00:26: Particle Affector Type 'DirectionRandomiser' registered
10:00:26: Particle Affector Type 'DeflectorPlane' registered
10:00:26: Plugin successfully installed
10:00:26: *-*-* OGRE Initialising
10:00:26: *-*-* Version 2.2.1unstable (Cerberus)
10:00:26: D3D11: RenderSystem Option: sRGB Gamma Conversion = Yes
10:00:26: D3D11: RenderSystem Option: Allow NVPerfHUD = No
10:00:26: D3D11: RenderSystem Option: Backbuffer Count = Auto
10:00:26: D3D11: RenderSystem Option: Driver type = Hardware
10:00:26: D3D11: RenderSystem Option: Fast Shader Build Hack = Yes
10:00:26: D3D11: RenderSystem Option: Floating-point mode = Fastest
10:00:26: D3D11: RenderSystem Option: Full Screen = No
10:00:26: D3D11: RenderSystem Option: Information Queue Exceptions Bottom Level = Info (exception on any message)
10:00:26: D3D11: RenderSystem Option: MSAA = 1
10:00:26: D3D11: RenderSystem Option: Max Requested Feature Levels = 11.1
10:00:26: D3D11: RenderSystem Option: Min Requested Feature Levels = 9.1
10:00:26: D3D11: RenderSystem Option: Rendering Device = (default)
10:00:26: D3D11: RenderSystem Option: VSync = No
10:00:26: D3D11: RenderSystem Option: VSync Interval = 1
10:00:26: D3D11: RenderSystem Option: Vendor Extensions = Auto
10:00:26: D3D11: RenderSystem Option: Video Mode = 1280 x 720 @ 32-bit colour
10:00:26: D3D11: RenderSystem Option: sRGB Gamma Conversion = Yes
10:00:28: CPU Identifier & Features
10:00:28: -------------------------
10:00:28:  *   CPU ID: GenuineIntel: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
10:00:28:  *   Logical cores: 8
10:00:28:  *      SSE: yes
10:00:28:  *     SSE2: yes
10:00:28:  *     SSE3: yes
10:00:28:  *      MMX: yes
10:00:28:  *   MMXEXT: yes
10:00:28:  *    3DNOW: no
10:00:28:  * 3DNOWEXT: no
10:00:28:  *     CMOV: yes
10:00:28:  *      TSC: yes
10:00:28:  *      FPU: yes
10:00:28:  *      PRO: yes
10:00:28:  *       HT: no
10:00:28: -------------------------
10:00:28: D3D11 : Subsystem Initialising
10:00:28: D3D11: Driver Detection Starts
10:00:28: D3D11: "Intel(R) HD Graphics 630"
10:00:28: D3D11: "NVIDIA GeForce GTX 1060"
10:00:28: D3D11: "Microsoft Basic Render Driver (software)"
10:00:28: D3D11: Driver Detection Ends
10:00:28: D3D11: Requested "(default)", selected "Intel(R) HD Graphics 630"
10:00:28: ***************************************
10:00:28: *** D3D11: Subsystem Initialized OK ***
10:00:28: ***************************************
10:00:28: D3D11RenderSystem::_createRenderWindow "Local Reflections using Parallax Corrected Cubemaps. Manual vs Auto modes.", 1280x720 windowed  miscParams: MSAA=1 externalWindowHandle=264980 gamma=Yes reverse_depth=Yes title=Local Reflections using Parallax Corrected Cubemaps. Manual vs Auto modes. vsync=No 
10:00:28: Registering ResourceManager for type GpuProgram
10:00:28: RenderSystem capabilities
10:00:28: -------------------------
10:00:28: RenderSystem Name: Direct3D11 Rendering Subsystem
10:00:28: GPU Vendor: intel
10:00:28: Device Name: Intel(R) HD Graphics 630
10:00:28: Driver Version: 22.20.16.4749
10:00:28:  * Fixed function pipeline: no
10:00:28:  * Hardware generation of mipmaps: yes
10:00:28:  * Texture blending: yes
10:00:28:  * Anisotropic texture filtering: yes
10:00:28:  * Dot product texture operation: yes
10:00:28:  * Cube mapping: yes
10:00:28:  * Hardware stencil buffer: yes
10:00:28:    - Stencil depth: 8
10:00:28:    - Two sided stencil support: yes
10:00:28:    - Wrap stencil values: yes
10:00:28:  * Hardware vertex / index buffers: yes
10:00:28:  * 32-bit index buffers: yes
10:00:28:  * Vertex programs: yes
10:00:28:  * Number of floating-point constants for vertex programs: 512
10:00:28:  * Number of integer constants for vertex programs: 16
10:00:28:  * Number of boolean constants for vertex programs: 16
10:00:28:  * Fragment programs: yes
10:00:28:  * Number of floating-point constants for fragment programs: 512
10:00:28:  * Number of integer constants for fragment programs: 16
10:00:28:  * Number of boolean constants for fragment programs: 16
10:00:28:  * Geometry programs: yes
10:00:28:  * Number of floating-point constants for geometry programs: 512
10:00:28:  * Number of integer constants for geometry programs: 16
10:00:28:  * Number of boolean constants for geometry programs: 16
10:00:28:  * Tessellation Hull programs: yes
10:00:28:  * Number of floating-point constants for tessellation hull programs: 512
10:00:28:  * Number of integer constants for tessellation hull programs: 16
10:00:28:  * Number of boolean constants for tessellation hull programs: 16
10:00:28:  * Tessellation Domain programs: yes
10:00:28:  * Number of floating-point constants for tessellation domain programs: 512
10:00:28:  * Number of integer constants for tessellation domain programs: 16
10:00:28:  * Number of boolean constants for tessellation domain programs: 16
10:00:28:  * Compute programs: yes
10:00:28:  * Number of floating-point constants for compute programs: 512
10:00:28:  * Number of integer constants for compute programs: 16
10:00:28:  * Number of boolean constants for compute programs: 16
10:00:28:  * Supported Shader Profiles: cs_5_0 ds_5_0 gs_4_0 gs_4_1 gs_5_0 hlsl hs_5_0 ps_4_0 ps_4_0_level_9_1 ps_4_0_level_9_3 ps_4_1 ps_5_0 vs_4_0 vs_4_0_level_9_1 vs_4_0_level_9_3 vs_4_1 vs_5_0
10:00:28:  * Texture Compression: yes
10:00:28:    - DXT: yes
10:00:28:    - VTC: no
10:00:28:    - PVRTC: no
10:00:28:    - ATC: no
10:00:28:    - ETC1: no
10:00:28:    - ETC2: no
10:00:28:    - BC4/BC5: yes
10:00:28:    - BC6H/BC7: yes
10:00:28:    - ASTC: no
10:00:28:  * Hardware Occlusion Query: yes
10:00:28:  * User clip planes: yes
10:00:28:  * VET_UBYTE4 vertex element type: yes
10:00:28:  * Infinite far plane projection: yes
10:00:28:  * Hardware render-to-texture: yes
10:00:28:  * Floating point textures: yes
10:00:28:  * Non-power-of-two textures: yes
10:00:28:  * 1d textures: yes
10:00:28:  * Volume textures: yes
10:00:28:  * Max Texture resolution (2D) 16384
10:00:28:  * Max Texture resolution (3D) 2048
10:00:28:  * Max Texture resolution (Cubemaps) 16384
10:00:28:  * Multiple Render Targets: 8
10:00:28:    - With different bit depths: yes
10:00:28:  * Point Sprites: yes
10:00:28:  * Extended point parameters: yes
10:00:28:  * Max Point Size: 256
10:00:28:  * Vertex texture fetch: yes
10:00:28:  * Number of world matrices: 0
10:00:28:  * Number of texture units: 16
10:00:28:  * Stencil buffer depth: 8
10:00:28:  * Number of vertex blend matrices: 0
10:00:28:    - Max vertex textures: 4
10:00:28:    - Vertex textures shared: no
10:00:28:  * Render to Vertex Buffer : yes
10:00:28:  * Hardware Atomic Counters: no
10:00:28:  * Compute max threads per threadgroup per axis: 1024, 1024, 64
10:00:28:  * Compute max threads per threadgroup total: 1024
10:00:28:  * Using Reverse Z: yes
10:00:28: DefaultWorkQueue('Root') initialising on thread 20040.
10:00:28: DefaultWorkQueue('Root')::WorkerFunc - thread 11164 starting.
10:00:28: DefaultWorkQueue('Root')::WorkerFunc - thread 8216 starting.
10:00:28: DefaultWorkQueue('Root')::WorkerFunc - thread 15516 starting.
10:00:28: DefaultWorkQueue('Root')::WorkerFunc - thread 1580 starting.
10:00:28: DefaultWorkQueue('Root')::WorkerFunc - thread 8416 starting.
10:00:28: DefaultWorkQueue('Root')::WorkerFunc - thread 3496 starting.
10:00:28: DefaultWorkQueue('Root')::WorkerFunc - thread 18376 starting.
10:00:28: DefaultWorkQueue('Root')::WorkerFunc - thread 17172 starting.
10:00:28: Particle Renderer Type 'billboard' registered
10:00:28: OverlayElementFactory for type Panel registered.
10:00:28: OverlayElementFactory for type BorderPanel registered.
10:00:28: OverlayElementFactory for type TextArea registered.
10:00:28: Registering ResourceManager for type Font
10:00:28: Creating resource group Essential
10:00:28: Added resource location 'D:/Development/SDK/OGRE/OGRE 2.2/Samples/Media/packs/DebugPack.zip' of type 'Zip' to resource group 'Essential'
10:00:28: Added resource location 'D:/Development/SDK/OGRE/OGRE 2.2/Samples/Media/packs/CornellBox.zip' of type 'Zip' to resource group 'Essential'
10:00:28: Added resource location 'D:/Development/SDK/OGRE/OGRE 2.2/Samples/Media/2.0/scripts/materials/Common' of type 'FileSystem' to resource group 'General'
10:00:28: Added resource location 'D:/Development/SDK/OGRE/OGRE 2.2/Samples/Media/2.0/scripts/materials/Common/Any' of type 'FileSystem' to resource group 'General'
10:00:28: Added resource location 'D:/Development/SDK/OGRE/OGRE 2.2/Samples/Media/2.0/scripts/materials/Common/GLSL' of type 'FileSystem' to resource group 'General'
10:00:28: Added resource location 'D:/Development/SDK/OGRE/OGRE 2.2/Samples/Media/2.0/scripts/materials/Common/GLSLES' of type 'FileSystem' to resource group 'General'
10:00:28: Added resource location 'D:/Development/SDK/OGRE/OGRE 2.2/Samples/Media/2.0/scripts/materials/Common/HLSL' of type 'FileSystem' to resource group 'General'
10:00:28: Added resource location 'D:/Development/SDK/OGRE/OGRE 2.2/Samples/Media/2.0/scripts/materials/Common/Metal' of type 'FileSystem' to resource group 'General'
10:00:28: Creating resource group Popular
10:00:28: Added resource location 'D:/Development/SDK/OGRE/OGRE 2.2/Samples/Media/2.0/scripts/Compositors' of type 'FileSystem' to resource group 'Popular'
10:00:28: Added resource location 'D:/Development/SDK/OGRE/OGRE 2.2/Samples/Media/models' of type 'FileSystem' to resource group 'Popular'
10:00:28: Added resource location 'D:/Development/SDK/OGRE/OGRE 2.2/Samples/Media/materials/textures' of type 'FileSystem' to resource group 'Popular'
10:00:28: Added resource location 'D:/Development/SDK/OGRE/OGRE 2.2/Samples/Media/materials/textures/Cubemaps' of type 'FileSystem' to resource group 'Popular'
10:00:28: Added resource location 'D:/Development/SDK/OGRE/OGRE 2.2/Samples/Media/2.0/scripts/materials/LocalCubemaps/' of type 'FileSystem' to resource group 'General'
10:00:28: Added resource location 'D:/Development/SDK/OGRE/OGRE 2.2/Samples/Media/2.0/scripts/materials/LocalCubemaps/GLSL' of type 'FileSystem' to resource group 'General'
10:00:28: Added resource location 'D:/Development/SDK/OGRE/OGRE 2.2/Samples/Media/2.0/scripts/materials/LocalCubemaps/HLSL' of type 'FileSystem' to resource group 'General'
10:00:28: Added resource location 'D:/Development/SDK/OGRE/OGRE 2.2/Samples/Media/2.0/scripts/materials/LocalCubemaps/Metal' of type 'FileSystem' to resource group 'General'
10:00:28: Added resource location 'D:/Development/SDK/OGRE/OGRE 2.2/Samples/Media/2.0/scripts/materials/TutorialSky_Postprocess' of type 'FileSystem' to resource group 'General'
10:00:28: [INFO] Texture cache not found at .//textureMetadataCache.json
10:00:28: Parsing scripts for resource group Autodetect
10:00:28: Finished parsing scripts for resource group Autodetect
10:00:28: Creating resources for group Autodetect
10:00:28: All done
10:00:28: Parsing scripts for resource group Essential
10:00:28: Parsing script Materials.material
10:00:28: Parsing script CornellBox.material.json
10:00:28: Parsing script DebugFont.fontdef
10:00:28: Finished parsing scripts for resource group Essential
10:00:28: Creating resources for group Essential
10:00:28: All done
10:00:28: Parsing scripts for resource group General
10:00:28: Parsing script Quad.program
10:00:28: Parsing script Copyback.material
10:00:28: Parsing script DepthUtils.material
10:00:28: Parsing script DPM.material
10:00:28: Parsing script DPSM.material
10:00:28: Parsing script EsmGaussianBlurLogFilter.material
10:00:29: Parsing script HiddenAreaMeshVr.material
10:00:29: Parsing script PccDepthCompressor.material
10:00:29: Parsing script RadialDensityMask.material
10:00:29: Parsing script Sky.material
10:00:29: Parsing script BlendProjectCubemap.material
10:00:29: Parsing script CopyCubemap.material
10:00:29: Parsing script SkyPostprocess.material
10:00:29: Parsing script EsmGaussianBlurLogFilter.material.json
10:00:29: Parsing script Mipmaps.material.json
10:00:29: Finished parsing scripts for resource group General
10:00:29: Creating resources for group General
10:00:29: All done
10:00:29: Parsing scripts for resource group Internal
10:00:29: Finished parsing scripts for resource group Internal
10:00:29: Creating resources for group Internal
10:00:29: All done
10:00:29: Parsing scripts for resource group Popular
10:00:29: Parsing script InstancedStereo.compositor
10:00:29: Parsing script LocalCubemaps.compositor
10:00:29: Parsing script PbsMaterials.compositor
10:00:29: Parsing script PlanarReflections.compositor
10:00:29: Parsing script ScreenSpaceReflections.compositor
10:00:29: Parsing script ShadowMapDebugging.compositor
10:00:29: Parsing script StaticShadowMaps.compositor
10:00:29: Parsing script StencilTest.compositor
10:00:29: Parsing script StereoRendering.compositor
10:00:29: Parsing script TutorialSky_Postprocess.compositor
10:00:29: Parsing script TutorialUav01_Setup.compositor
10:00:29: Parsing script TutorialUav02_Setup.compositor
10:00:29: Parsing script Tutorial_DynamicCubemap.compositor
10:00:29: Parsing script Tutorial_OpenVRWorkspace.compositor
10:00:29: Parsing script Tutorial_ReconstructPosFromDepth.compositor
10:00:29: Parsing script Tutorial_Terrain.compositor
10:00:30: Parsing script UvBaking.compositor
10:00:30: Finished parsing scripts for resource group Popular
10:00:30: Creating resources for group Popular
10:00:30: All done
10:00:30: Mesh: Loading Cube_d.mesh.
10:00:30: WARNING: Cube_d.mesh is an older format ([MeshSerializer_v2.1 R1]); you should upgrade it as soon as possible using the OgreMeshTool tool.
10:00:31: Warnings while compiling D3D11 high-level shader 100000002PixelShader_ps:
D:\Development\SDK\OGRE\OGRE 2.2\build\x64\bin\Debug\100000002PixelShader_ps.hlsl(1261,14): warning X3078: 'i': loop control variable conflicts with a previous declaration in the outer scope; most recent declaration will be used

Callstack

>	OgreHlmsPbs_d.dll!Ogre::CubemapProbe::_addReference() Line 612	C++
 	OgreHlmsPbs_d.dll!Ogre::HlmsPbsDatablock::setCubemapProbe(Ogre::CubemapProbe * probe) Line 940	C++
 	Sample_LocalCubemapsManualProbes.exe!Demo::LocalCubemapsManualProbesGameState::createScene01() Line 309	C++
 	Sample_LocalCubemapsManualProbes.exe!Demo::BaseSystem::createScene01() Line 29	C++
 	Sample_LocalCubemapsManualProbes.exe!Demo::MainEntryPoints::mainAppSingleThreaded(HINSTANCE__ * hInst, HINSTANCE__ * hPrevInstance, char * strCmdLine, int nCmdShow) Line 82	C++
 	Sample_LocalCubemapsManualProbes.exe!WinMainApp(HINSTANCE__ * hInst, HINSTANCE__ * hPrevInstance, char * strCmdLine, int nCmdShow) Line 23	C++
 	Sample_LocalCubemapsManualProbes.exe!WinMain(HINSTANCE__ * hInst, HINSTANCE__ * hInst2, char * strCmdLine, int intParam) Line 35	C++
 	[External Code]	
-		this	0x0000022c4bebf8e0 {mProbeCameraPos={x=-0.000000000 y=1.79999900 z=0.232415006 } mArea={mCenter={x=-0.000000000 ...} ...} ...}	Ogre::CubemapProbe *
		Ogre::AllocatedObject<Ogre::CategorisedAllocPolicy<0> >	{...}	Ogre::AllocatedObject<Ogre::CategorisedAllocPolicy<0>>
+		mProbeCameraPos	{x=-0.000000000 y=1.79999900 z=0.232415006 }	Ogre::Vector3
+		mArea	{mCenter={x=-0.000000000 y=12.0119743 z=0.232414007 } mHalfSize={x=6.29473877 y=12.1488724 z=5.28473806 } }	Ogre::Aabb
+		mAreaInnerRegion	{x=1.00000000 y=1.00000000 z=0.300000012 }	Ogre::Vector3
+		mOrientation	{m=0x0000022c4bebf910 {0x0000022c4bebf910 {1.00000000, 0.000000000, 0.000000000}, 0x0000022c4bebf91c {...}, ...} }	Ogre::Matrix3
+		mInvOrientation	{m=0x0000022c4bebf934 {0x0000022c4bebf934 {1.00000000, 0.000000000, 0.000000000}, 0x0000022c4bebf940 {...}, ...} }	Ogre::Matrix3
+		mProbeShape	{mCenter={x=-0.000000000 y=12.0119743 z=0.232414007 } mHalfSize={x=6.32621241 y=12.2096167 z=5.31116152 } }	Ogre::Aabb
+		mTexture	0x0000022c4b18e2f0 {mDefaultDisplaySrv=0x0000022c4b58eb90 <Information not available, no symbols loaded for d3d11_3SDKLayers.dll> ...}	Ogre::TextureGpu * {RenderSystem_Direct3D11_d.dll!Ogre::D3D11TextureGpu}
		mCubemapArrayIdx	0	unsigned short
		mMsaa	1 '\x1'	unsigned char
		mWorkspaceMipmapsExecMask	1 '\x1'	unsigned char
+		mWorkspaceDefName	{mHash=206068075 mDebugString=0x0000022c4bebf980 "LocalCubemapsProbeWorkspace" }	Ogre::IdString
+		mClearWorkspace	0x0000000000000000 <NULL>	Ogre::CompositorWorkspace *
+		mWorkspace	0x0000022c4baae630 {mDefinition=0x0000022c3ebc7450 {mName={mHash=206068075 mDebugString=0x0000022c3ebc74f4 "LocalCubemapsProbeWorkspace" } ...} ...}	Ogre::CompositorWorkspace * {OgreMain_d.dll!Ogre::CompositorWorkspace}
+		mCamera	0x0000022c4b2dc880 {mSceneMgr=0x0000022c4b803310 {...} mOrientation={w=1.00000000 x=0.000000000 y=0.000000000 ...} ...}	Ogre::Camera * {OgreMain_d.dll!Ogre::Camera}
+		mCreator	0x0000022c4b3bc440 {mDirtyProbes={ size=0 } mTrackedPosition={x=3.76757598 y=1.79999697 z=20.8438702 } ...}	Ogre::ParallaxCorrectedCubemapBase * {Sample_LocalCubemapsManualProbes.exe!Ogre::ParallaxCorrectedCubemapAuto}
+		mInternalProbe	0x0000022c33d4ece0 {mGpuData=0x0000022c33d4ee28 {0x0000022c33d4ee28 {1.00000000, 0.000000000, 0.000000000, ...}, ...} }	Ogre::InternalCubemapProbe * {OgreMain_d.dll!Ogre::InternalCubemapProbe}
+		mConstBufferForManualProbes	0x0000000000000000 <NULL>	Ogre::ConstBufferPacked *
		mNumDatablockUsers	0	unsigned int
		mPriority	10	unsigned short
		mStatic	true	bool
		mEnabled	true	bool
		mDirty	false	bool
		mNumIterations	8	unsigned short
		mMask	4294967295	unsigned int

Implement Mikktspace

As explained in Generating Perfect Normal Maps for Unity (and Other Programs) and asked in an old Ogre forum post Mikktspace has become standard in the industry, but we don't use it.

We have an older TangentSpaceCalc implementation, which could use be replaced to use mikktspace.h and mikktspace.c instead.

If it helps, DERGO has a Vao version that may be easier to read due to its simplicity. The simplicity comes from the fact that it happily generates duplicated vertices instead of trying to reuse vertices.

VertexBufferDownloadHelper is also a powerful tool to access vertices on the GPU in an easy way.

Finally the shader needs to be modified to use, instead of TBN, use:
vNout = normalize( vNt.x * vT + vNt.y * vB + vNt.z * vN );

We already generate bitangents in pixel shader.

This shouldn't require too much work.

Normalmaps broken for Terra in Ogre 2.2

As reported by Lax there is a shader compiler error when using normal maps for Terra

System Information

  • Ogre Version: 2.2
  • Operating System / Platform: Any
  • RenderSystem: All of them
  • GPU: N/A

Ogre.log

13:35:21: OGRE EXCEPTION(-2147467259:RenderingAPIException): Cannot compile D3D11 high-level shader 700000008PixelShader_ps Errors:
C:\Users\lukas\Documents\GameEngineDevelopment\bin\Debug\700000008PixelShader_ps.hlsl(1070,41-50): error X3004: undeclared identifier 'geomNormal'
 in D3D11HLSLProgram::compileMicrocode at C:\Users\lukas\Documents\GameEngineDevelopment\external\Ogre2.2SDK\RenderSystems\Direct3D11\src\OgreD3D11HLSLProgram.cpp (line 569)
13:35:21: High-level program 700000008PixelShader_ps encountered an error during loading and is thus not supported.
OGRE EXCEPTION(-2147467259:RenderingAPIException): Cannot compile D3D11 high-level shader 700000008PixelShader_ps Errors:
C:\Users\lukas\Documents\GameEngineDevelopment\bin\Debug\700000008PixelShader_ps.hlsl(1070,41-50): error X3004: undeclared identifier 'geomNormal'
 in D3D11HLSLProgram::compileMicrocode at C:\Users\lukas\Documents\GameEngineDevelopment\external\Ogre2.2SDK\RenderSystems\Direct3D11\src\OgreD3D11HLSLProgram.cpp (line 569)
13:35:21: OGRE EXCEPTION(-2147467259:RenderingAPIException): Cannot compile D3D11 high-level shader 700000009PixelShader_ps Errors:
C:\Users\lukas\Documents\GameEngineDevelopment\bin\Debug\700000009PixelShader_ps.hlsl(1070,41-50): error X3004: undeclared identifier 'geomNormal'
 in D3D11HLSLProgram::compileMicrocode at C:\Users\lukas\Documents\GameEngineDevelopment\external\Ogre2.2SDK\RenderSystems\Direct3D11\src\OgreD3D11HLSLProgram.cpp (line 569)
13:35:21: High-level program 700000009PixelShader_ps encountered an error during loading and is thus not supported.
OGRE EXCEPTION(-2147467259:RenderingAPIException): Cannot compile D3D11 high-level shader 700000009PixelShader_ps Errors:
C:\Users\lukas\Documents\GameEngineDevelopment\bin\Debug\700000009PixelShader_ps.hlsl(1070,41-50): error X3004: undeclared identifier 'geomNormal'
 in D3D11HLSLProgram::compileMicrocode at C:\Users\lukas\Documents\GameEngineDevelopment\external\Ogre2.2SDK\RenderSystems\Direct3D11\src\OgreD3D11HLSLProgram.cpp (line 569)

Add simple example skeleton to docs

It has been pointed out to me that, unlike our 1.x sister, we lack a simple skeleton that with a few lines one can have Ogre running ASAP on screen.

ExampleProject is too complex for that.

That's my fault for thinking 2.x users come from a 1.x background (Ogre setup is almost the same) and trying to be a perfectionist:

The thing about GameEntityManager and co. is that we don't dictate how you want to do things (you can do your render loop how ever you want), but there are many common mistakes and that's what we teach from Tutorial01 to Tutorial06 and why we provide the "SamplesCommon" framework library.

While one could do things whatever way one wants, I found myself several times having to advise users on how to fix: Performance problems, Stutter, high input latency, lack of determinism (which complicates testing, and in the case of certain applications; it completely destroys them); even if single threaded.
All things that could've been avoided if the base fundamentals were solid.

But being so perfectionist I forget I need to show first how to get a window on screen with no dependencies.

Window creation has no way to specify depth buffer format nor disable it

It has been brought to my attention Ogre 2.2 only longer allows to specify the depth buffer format via DepthBuffer::DefaultDepthBufferFormat (which is super tricky and confusing), and that there is no way to disable depth buffer on render windows.

A lot of rendering may actually happen offscreen and then copied to render windows, which means a lot of use cases involve disabling the depth buffer for the render window

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.