Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ogre 2.2 ignition-rendering plugin not loaded on Windows #920

Open
j-rivero opened this issue May 11, 2023 · 3 comments
Open

Ogre 2.2 ignition-rendering plugin not loaded on Windows #920

j-rivero opened this issue May 11, 2023 · 3 comments

Comments

@j-rivero
Copy link
Contributor

j-rivero commented May 11, 2023

We have noticed that the ogre 2.2 plugin coming from the osrf vcpkg port repository is not being loaded in the Windows CI builds on build.o.o. The test ended up with an success result but the reality is that it won't run any test.

        Start  61: UNIT_RenderPassSystem_TEST

61: Test command: C:\J\workspace\_test_ign_rendering-ign-6-win\ws\build\ignition-rendering6\bin\Release\UNIT_RenderPassSystem_TEST.exe "--gtest_output=xml:C:/J/workspace/_test_ign_rendering-ign-6-win/ws/build/ignition-rendering6/test_results/UNIT_RenderPassSystem_TEST.xml"
61: Test timeout computed to be: 240
61: [==========] Running 2 tests from 1 test case.
61: [----------] Global test environment set-up.
61: [----------] 2 tests from GaussianNoise/RenderPassSystemTest
61: [ RUN      ] GaussianNoise/RenderPassSystemTest.RenderPassSystem/ogre2
61: Error while loading the library [C:\J\workspace\_test_ign_rendering-ign-6-win\ws\install\ignition-rendering6\lib\ign-rendering-6\engine-plugins\ignition-rendering-ogre2.dll]: "C:\J\workspace\_test_ign_rendering-ign-6-win\ws\install\ignition-rendering6\lib\ign-rendering-6\engine-plugins\ignition-rendering-ogre2.dll": The specified module could not be found.
61: �[31m[Err] [C:\J\workspace\_test_ign_rendering-ign-6-win\ws\gz-rendering\src\RenderEngineManager.cc:470] �[m�[31mFailed to load plugin [�[m�[31mignition-rendering-ogre2�[m�[31m] : couldn't load library on path [�[m�[31mC:\J\workspace\_test_ign_rendering-ign-6-win\ws\install\ignition-rendering6\lib\ign-rendering-6\engine-plugins\ignition-rendering-ogre2.dll�[m�[31m].�[m�[31m
61: �[m[       OK ] GaussianNoise/RenderPassSystemTest.RenderPassSystem/ogre2 (5 ms)

The Windows message probably from dlopen saying:

"C:\J\workspace\_test_ign_rendering-ign-6-win\ws\install\ignition-rendering6\lib\ign-rendering-6\engine-plugins\ignition-rendering-ogre2.dll": The specified module could not be found.

Is not really accurate since the module is that location. It is more interesting the message from gz-rendering that says:

61: �[31m[Err] [C:\J\workspace\_test_ign_rendering-ign-6-win\ws\gz-rendering\src\RenderEngineManager.cc:470] �[m�[31mFailed to load plugin [�[m�[31mignition-rendering-ogre2�[m�[31m] : couldn't load library on path

gz-rendering is checking that the file exists and if it is not the case, the error message is different. couldn't load library on path probably means that it could not be loaded for other reason.

My hypothesis for this first problem is osrf/vcpkg-ports#12. In summary, the test is loading the Ogre 1.x dll instead of the Ogre 2.x dll so they can not be loaded. To support this, I run a build without Ogre 1.x in vcpkg, and after adding the vcpkg OGRE-2.2 bin directory I see the following:

[ RUN      ] RenderingIfaceTest.GetEngine
[Dbg] [C:\J\workspace\_test_ign_rendering-ign-6-win\ws\gz-rendering\src\RenderingIface.cc:135] No rendering engine is loaded yet
[Msg] Loading plugin [ignition-rendering-ogre2]
[Err] [C:\J\workspace\_test_ign_rendering-ign-6-win\ws\gz-rendering\ogre2\src\Ogre2RenderEngine.cc:603] unable to find OpenGL 3+ Rendering Subsystem. OGRE is probably installed incorrectly. Double check the OGRE cmake output, and make sure OpenGL is enabled.
unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.

The error probably comes from the fact of using the Remote Desktop Protocol or other problems with OpenGL but the dll loading seems to have been successful:

 ~/.ignition
$ cat rendering/ogre2.log
17:05:15: Creating resource group General
17:05:15: Creating resource group Internal
17:05:15: Creating resource group Autodetect
17:05:15: SceneManagerFactory for type 'DefaultSceneManager' registered.
17:05:15: Registering ResourceManager for type Material
17:05:15: Registering ResourceManager for type Mesh
17:05:15: Registering ResourceManager for type Mesh2
17:05:15: Registering ResourceManager for type OldSkeleton
17:05:15: MovableObjectFactory for type 'ParticleSystem' registered.
17:05:15: ArchiveFactory for archive type FileSystem registered.
17:05:15: ArchiveFactory for archive type Zip registered.
17:05:15: ArchiveFactory for archive type EmbeddedZip registered.
17:05:15: FreeImage version: 3.18.0
17:05:15: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
17:05:15: 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,psb,cut,xbm,xpm,gif,hdr,sgi,rgb,rgba,bw,exr,j2k,j2c,jp2,pfm,pct,pict,pic,3fr,arw,bay,bmq,cap,cine,cr2,crw,cs1,dc2,dcr,drf,dsc,dng,erf,fff,ia,iiq,k25,kc2,kdc,mdc,mef,mos,mrw,nef,nrw,orf,pef,ptx,pxn,qtk,raf,raw,rdc,rw2,rwl,rwz,sr2,srf,srw,sti,x3f,webp,jxr,wdp,hdp
17:05:15: ETC codec registering
17:05:15: Registering ResourceManager for type HighLevelGpuProgram
17:05:15: MovableObjectFactory for type 'Decal' registered.
17:05:15: MovableObjectFactory for type 'InternalCubemapProbe' registered.
17:05:15: MovableObjectFactory for type 'Entity' registered.
17:05:15: MovableObjectFactory for type 'Item' registered.
17:05:15: MovableObjectFactory for type 'Light' registered.
17:05:15: MovableObjectFactory for type 'Rectangle2Dv2' registered.
17:05:15: MovableObjectFactory for type 'BillboardSet' registered.
17:05:15: MovableObjectFactory for type 'ManualObject2' registered.
17:05:15: MovableObjectFactory for type 'BillboardChain' registered.
17:05:15: MovableObjectFactory for type 'RibbonTrail' registered.
17:05:15: MovableObjectFactory for type 'WireAabb' registered.
17:05:15: *-*-* OGRE Initialising
17:05:15: *-*-* Version 2.2.6 (Cerberus)
17:05:15: OverlayElementFactory for type Panel registered.
17:05:15: OverlayElementFactory for type BorderPanel registered.
17:05:15: OverlayElementFactory for type TextArea registered.
17:05:15: Registering ResourceManager for type Font

FYI: @iche033

@iche033
Copy link
Contributor

iche033 commented May 11, 2023

thanks for looking into this! Maybe we should just run with only either ogre 1.x or ogre 2.x on windows CI for now?

@j-rivero
Copy link
Contributor Author

j-rivero commented May 12, 2023

thanks for looking into this! Maybe we should just run with only either ogre 1.x or ogre 2.x on windows CI for now?

+1. Looking at vcpkg they don't support ogre1 and ogre-next together. Question is, which one should we choose?

@iche033
Copy link
Contributor

iche033 commented May 12, 2023

my vote would be ogre-next as that's more commonly used and also the rendering default engine used in Gazebo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants