-
Notifications
You must be signed in to change notification settings - Fork 44
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
3D scene failing to load on macOS #145
Comments
I investigated this issue a little bit. Some of issues that I found:
I have been trying to create a simple QML + OGRE simple example, but I didn't have success until this moment.
I will update the simple demo to my Github account when it's ready to be tested by others. ign gui -s Scene3D
|
Thanks for the update. I see you're using Ogre1. Just curious if you're running into the same exact issue with Ogre2. |
I can't execute Ogre2 in MacOS because of the following error:
Anyhow If I hacked my system I got the same error |
Oush I see, mind ticketing an issue for this on I don't see anything about that on |
Getting the 3D scene to work on macOS has proved to demand more effort than we can put into this for now. So Open Robotics is not planning to work on this in the near future, but we welcome contributions from the community in case someone is interested in that platform. |
I am seeing the same problem on macOS 10.15.7 in
I'll continue to look into this to understand why the rendering is not working in this package first for In the meanwhile it might be worth placing a note on the ignition installation page that macOS is not fully supported at this stage, as it gives the impression that it is. |
Thanks!
We have an issue for that, planning to tackle it soon: gazebosim/docs#116 |
@chapulina It looks like there is an initialisation ordering issue in In the following we only build for ogre (1) so the potential conflict between ogre and ogre2 is not present. System: macOS 10.15.7 Start by replicating the issue using the command line tools to load the Scene3D plugin: $ ign gui -v -c examples/config/scene3d.config
...
[GUI] [Msg] Loading config [examples/config/scene3d.config]
[GUI] [Msg] Added plugin [View 1] to main window
[GUI] [Msg] Loaded plugin [Scene3D] from path [/usr/local/lib/ign-gui-4/plugins/libScene3D.dylib]
[GUI] [Msg] Loading plugin [ignition-rendering-ogre]
[GUI] [Err] [OgreRenderEngine.cc:290] Failed to load render-engine
[GUI] [Err] [BaseRenderEngine.cc:55] Render-engine must be loaded first
[GUI] [Err] [BaseRenderEngine.cc:215] Render-engine has not been initialized
[BUG] Segmentation fault at 0x0000000000000000
ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-darwin19]
...
(Stack trace) Next we try to replicate the error using the window standalone example modified to load the "Scene3D" plugin: - Load plugins / config
- if (!app.LoadPlugin("Publisher"))
- {
- return 1;
- }
+ if (!app.LoadPlugin("Scene3D"))
+ {
+ return 1;
+ } Running the example yields the same type of error: % ./window
Hello, GUI!
[Dbg] [Application.cc:87] Initializing application.
[GUI] [Dbg] [Application.cc:407] Create main window
... (various Qt font and deprecated behaviour warnings)
[GUI] [Dbg] [Application.cc:305] Loading plugin [Scene3D]
[GUI] [Msg] Added plugin [3D Scene] to main window
[GUI] [Msg] Loaded plugin [Scene3D] from path [/usr/local/lib/ign-gui-4/plugins/libScene3D.dylib]
[GUI] [Msg] Loading plugin [ignition-rendering-ogre]
[GUI] [Err] [OgreRenderEngine.cc:290] Failed to load render-engine
[GUI] [Err] [BaseRenderEngine.cc:55] Render-engine must be loaded first
[GUI] [Dbg] [Scene3D.cc:941] Create scene [scene]
[GUI] [Err] [BaseRenderEngine.cc:215] Render-engine has not been initialized
zsh: segmentation fault ./window Stepping through the example we find:
Details: In the initialise function the engine is used to create the scene and then set lights etc. /////////////////////////////////////////////////
void IgnRenderer::Initialize()
{
if (this->initialized)
return;
std::map<std::string, std::string> params;
params["useCurrentGLContext"] = "1";
auto engine = rendering::engine(this->engineName, params);
if (!engine)
{
ignerr << "Engine [" << this->engineName << "] is not supported"
<< std::endl;
return;
}
// Scene
auto scene = engine->SceneByName(this->sceneName);
if (!scene)
{
igndbg << "Create scene [" << this->sceneName << "]" << std::endl;
scene = engine->CreateScene(this->sceneName);
scene->SetAmbientLight(this->ambientLight);
scene->SetBackgroundColor(this->backgroundColor);
}
...
} However we see that that ScenePtr BaseRenderEngine::CreateScene(const std::string &_name)
{
unsigned int sceneId = this->NextSceneId();
return this->CreateScene(sceneId, _name);
} //////////////////////////////////////////////////
ScenePtr BaseRenderEngine::CreateScene(unsigned int _id,
const std::string &_name)
{
if (!this->IsInitialized())
{
ignerr << "Render-engine has not been initialized" << std::endl;
return nullptr;
}
...
} This causes the plugin to fail. I haven't confirmed this is exactly what is going on with the command line tools as I'm still trying to figure out where the entry point for those are, but it seems like the culprit. Not clear why this is only a macOS issue though? Update 1: Additional Analysis The underlying problem is that there are multiple ways for the rendering engine to fail to load. Some of these paths throw exceptions which result in the engine being marked as not initialised or loaded, but not all code paths do this. For example, in The issue I am seeing is arising from an uncaught exception in |
Nice catch, I think we should check the pointer there.
As you mention later, the issue is earlier in the code path. So it doesn't manifest for Linux because the engine is properly loaded, but it manifests for macOS because that fails to load.
I'm not sure I follow, so there's no way catch that exception and make |
In The issue is that
which contains this code: The exception is logged, but the function exits without the exception being propagated. So the calling functions have no exception to catch and I guess the options are to either re-throw the exception instead of returning an empty string, or to make (unfortunately code permalinks links don't seem to be working in preview for me for some reason) |
@ahcorde and @chapulina. I've been digging into this and think I may be getting to the reason why Scene3D is not working for macOS. It seems to come down to issues with threading and the OpenGL context. In what follows I've only been focussing on Ogre2.1 - but similar arguments apply for Ogre2.2 (which now has some support for OpenGL on macOS!) and probably Ogre 1.9 as well. In the Ogre2 GLPlus render system the Cocoa window that is eventually created on the call to create a render window is very fussy about being on the main thread. An attempt to initialise a Cocoa window or set a view on an NSOpenGLContext will result in a hard crash if you are not in the main thread. If you wrap the offending calls in Ogre with objective-c try catch blocks you get some information - but mostly it just exits and throws the core dump at you. It appears that prior to macOS Catalina the behaviour was to emit warnings and carry on, now it's a crash. By default ignition hides the Ogre logging so you may not have seen the warnings in earlier incarnations. Now Scene3D winds up initialising Ogre on a render thread which is a problem; because either you pass the Cocoa window handle in and hit the problem with trying to set the view on a NSOpenGLContext on a non-main thread, or you pass a null window handle in (current behaviour) and try to create a Cocoa window on a non-main thread. Both crash. So I think part of the solution is to ensure that Ogre is initialised on the main thread in Scene3D (in the RenderThread object) before it is moved to the render thread and started. There is also some weirdness going on with the contexts - and I think it might be necessary to capture the context directly from Ogre before switching back to the QML OpenGL context. I haven't got that all nailed down just yet. By way of progress I've managed to get the simple_demo example from ignition-rendering running in a Qt (not QML) application on macOS Big Sur. It is simpler than the QML case - no separate render thread or competing QML rendering, but it does capture some of the problems of the more complex case, highlights where some of the issues are and how to tackle them. It's in a private repo at present but could be added as an example to either ignition-rendering or ignition-gui if that would help. The objective is to get the stand alone QML version running but that's still wip. |
I did some tests in the ogre_qt_thread branch, which initializes ogre first before moving to the rendering thread. I don't have a working mac machine to test though but ign-gazebo seems to launch fine with the shapes world on ubuntu bionic. The changes are done against ign-gazebo4 but should be portable to other versions. You can also ignore the GuiRunner changes as those are unrelated but I had to make those changes for ign-gazebo to run. |
Thanks @iche033. I applied your changes from ogre_qt_thread to The Scene3D plugin loads through the Ogre initialisation stage in I suspect the treatment of OpenGL context is different on Linux to macOS and windows. This is because the render engine parameter: params["useCurrentGLContext"] = "1"; is treated differently on Linux (and is effectively ignored on macOS and windows). Here is the full log including the Ogre messages. The shader compilation warnings are expected on macOS with its supported version of OpenGL. The OpenGL GL_INVALID_ENUM error is because of the incorrect context. Process exited with code 9.
Launching: /Volumes/MacPro2_DV1/Code/robotics/gazebo/ign_ediface_ws/src/ign-gui/examples/standalone/window/build/window
Launched process 75392
Hello, GUI!
2021-07-30 09:19:43.163480+0100 window[75392:848329] SecTaskLoadEntitlements failed error=22 cs_flags=20, pid=75392
2021-07-30 09:19:43.163538+0100 window[75392:848329] SecTaskCopyDebugDescription: window[75392]/0#-1 LF=0
�[1;36m[Dbg] [Application.cc:87] �[1;36mInitializing application.�[1;36m
�[1;36m[GUI] [Dbg] [Application.cc:415] �[1;36mCreate main window�[1;36m
�[1;33m[GUI] [Wrn] [Application.cc:657] �[1;33m[QT] Populating font family aliases took 325 ms. Replace uses of missing font family "Roboto" with one that exists to avoid this cost. �[1;33m
2021-07-30 09:19:43.801211+0100 window[75392:848380] SecTaskLoadEntitlements failed error=22 cs_flags=20, pid=75392
2021-07-30 09:19:43.801301+0100 window[75392:848380] SecTaskCopyDebugDescription: window[75392]/0#-1 LF=0
2021-07-30 09:19:43.820744+0100 window[75392:848380] SecTaskLoadEntitlements failed error=22 cs_flags=20, pid=75392
2021-07-30 09:19:43.820813+0100 window[75392:848380] SecTaskCopyDebugDescription: window[75392]/0#-1 LF=0
2021-07-30 09:19:44.079353+0100 window[75392:848329] SecTaskLoadEntitlements failed error=22 cs_flags=20, pid=75392
2021-07-30 09:19:44.079440+0100 window[75392:848329] SecTaskCopyDebugDescription: window[75392]/0#-1 LF=0
2021-07-30 09:19:44.246255+0100 window[75392:848329] SecTaskLoadEntitlements failed error=22 cs_flags=20, pid=75392
2021-07-30 09:19:44.246346+0100 window[75392:848329] SecTaskCopyDebugDescription: window[75392]/0#-1 LF=0
�[1;33m[GUI] [Wrn] [Application.cc:657] �[1;33m[QT] qrc:/qml/StyleDialog.qml:112:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }�[1;33m
�[1;33m[GUI] [Wrn] [Application.cc:657] �[1;33m[QT] qrc:/qml/StyleDialog.qml:105:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }�[1;33m
�[1;33m[GUI] [Wrn] [Application.cc:657] �[1;33m[QT] qrc:/qml/StyleDialog.qml:98:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }�[1;33m
�[1;33m[GUI] [Wrn] [Application.cc:657] �[1;33m[QT] qrc:qml/Main.qml:83:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }�[1;33m
�[1;33m[GUI] [Wrn] [Application.cc:657] �[1;33m[QT] qrc:/qml/PluginMenu.qml:23:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }�[1;33m
�[1;36m[GUI] [Dbg] [Application.cc:313] �[1;36mLoading plugin [�[1;36mPublisher�[1;36m]�[1;36m
�[1;32m[GUI] �[1;32m[Msg] �[1;32mAdded plugin [�[1;32mPublisher�[1;32m] to main window�[1;32m
�[1;32m[GUI] �[1;32m[Msg] �[1;32mLoaded plugin [�[1;32mPublisher�[1;32m] from path [�[1;32m/Volumes/MacPro2_DV1/Code/robotics/gazebo/ign_ediface_ws/install/lib/ign-gui-5/plugins/libPublisher.dylib�[1;32m]�[1;32m
�[1;36m[GUI] [Dbg] [Application.cc:313] �[1;36mLoading plugin [�[1;36mScene3D�[1;36m]�[1;36m
�[1;32m[GUI] �[1;32m[Msg] �[1;32mAdded plugin [�[1;32m3D Scene�[1;32m] to main window�[1;32m
�[1;32m[GUI] �[1;32m[Msg] �[1;32mLoaded plugin [�[1;32mScene3D�[1;32m] from path [�[1;32m/Volumes/MacPro2_DV1/Code/robotics/gazebo/ign_ediface_ws/install/lib/ign-gui-5/plugins/libScene3D.dylib�[1;32m]�[1;32m
�[1;32m[GUI] �[1;32m[Msg] �[1;32mIgnRenderer::Initialize: externalWindowHandle = �[1;32m13086727840�[1;32m
�[1;32m[GUI] �[1;32m[Msg] �[1;32mLoading plugin [�[1;32mignition-rendering-ogre2�[1;32m]�[1;32m
Creating resource group General
Creating resource group Internal
Creating resource group Autodetect
SceneManagerFactory for type 'DefaultSceneManager' registered.
Registering ResourceManager for type Material
Registering ResourceManager for type Mesh
Registering ResourceManager for type Mesh2
Registering ResourceManager for type OldSkeleton
MovableObjectFactory for type 'ParticleSystem' registered.
ArchiveFactory for archive type FileSystem registered.
ArchiveFactory for archive type Zip registered.
ArchiveFactory for archive type EmbeddedZip registered.
DDS codec registering
FreeImage version: 3.18.0
This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
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,g3,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
ETC codec registering
OITD codec registering
Registering ResourceManager for type HighLevelGpuProgram
MovableObjectFactory for type 'Decal' registered.
MovableObjectFactory for type 'Entity' registered.
MovableObjectFactory for type 'Item' registered.
MovableObjectFactory for type 'Light' registered.
MovableObjectFactory for type 'BillboardSet' registered.
MovableObjectFactory for type 'ManualObject2' registered.
MovableObjectFactory for type 'BillboardChain' registered.
MovableObjectFactory for type 'RibbonTrail' registered.
MovableObjectFactory for type 'WireAabb' registered.
*-*-* OGRE Initialising
*-*-* Version 2.1.2 (Baldur)
OverlayElementFactory for type Panel registered.
OverlayElementFactory for type BorderPanel registered.
OverlayElementFactory for type TextArea registered.
Registering ResourceManager for type Font
Loading library /usr/local/opt/ogre2.1/lib/OGRE-2.1/OGRE/RenderSystem_GL3Plus.dylib
Installing plugin: GL 3+ RenderSystem
OpenGL 3+ Rendering Subsystem created.
Plugin successfully installed
Loading library /usr/local/opt/ogre2.1/lib/OGRE-2.1/OGRE/Plugin_ParticleFX.dylib
Installing plugin: ParticleFX
Particle Emitter Type 'Point' registered
Particle Emitter Type 'Box' registered
Particle Emitter Type 'Ellipsoid' registered
Particle Emitter Type 'Cylinder' registered
Particle Emitter Type 'Ring' registered
Particle Emitter Type 'HollowEllipsoid' registered
Particle Affector Type 'LinearForce' registered
Particle Affector Type 'ColourFader' registered
Particle Affector Type 'ColourFader2' registered
Particle Affector Type 'ColourImage' registered
Particle Affector Type 'ColourInterpolator' registered
Particle Affector Type 'Scaler' registered
Particle Affector Type 'Rotator' registered
Particle Affector Type 'DirectionRandomiser' registered
Particle Affector Type 'DeflectorPlane' registered
Plugin successfully installed
CPU Identifier & Features
-------------------------
* CPU ID: GenuineIntel: Intel(R) Xeon(R) W-3245 CPU @ 3.20GHz
* Logical cores: 32
* SSE: yes
* SSE2: yes
* SSE3: yes
* MMX: yes
* MMXEXT: yes
* 3DNOW: no
* 3DNOWEXT: no
* CMOV: yes
* TSC: yes
* FPU: yes
* PRO: yes
* HT: no
-------------------------
***********************************************
*** Starting Mac OS X OpenGL 3+ Subsystem ***
***********************************************
�[1;32m[GUI] �[1;32m[Msg] �[1;32mRenderEngine Params:
�[1;32m[GUI] �[1;32m[Msg] �[1;32mFSAA�[1;32m: �[1;32m0�[1;32m
�[1;32m[GUI] �[1;32m[Msg] �[1;32mborder�[1;32m: �[1;32mnone�[1;32m
�[1;32m[GUI] �[1;32m[Msg] �[1;32mcontentScalingFactor�[1;32m: �[1;32m1.000000�[1;32m
�[1;32m[GUI] �[1;32m[Msg] �[1;32mexternalWindowHandle�[1;32m: �[1;32m0�[1;32m
�[1;32m[GUI] �[1;32m[Msg] �[1;32mgamma�[1;32m: �[1;32mtrue�[1;32m
�[1;32m[GUI] �[1;32m[Msg] �[1;32mmacAPI�[1;32m: �[1;32mcocoa�[1;32m
�[1;32m[GUI] �[1;32m[Msg] �[1;32mmacAPICocoaUseNSView�[1;32m: �[1;32mtrue�[1;32m
�[1;32m[GUI] �[1;32m[Msg] �[1;32mstereoMode�[1;32m: �[1;32mFrame Sequential�[1;32m
GL3PlusRenderSystem::_createRenderWindow "OgreWindow(0)_0", 1x1 windowed miscParams: FSAA=0 border=none contentScalingFactor=1.000000 externalWindowHandle=0 gamma=true macAPI=cocoa macAPICocoaUseNSView=true stereoMode=Frame Sequential
Creating a Cocoa Compatible Render System
RenderSystem_GL3Plus.2.1.2.dylib was compiled with optimization - stepping may behave oddly; variables may not be available.
Cocoa: Window created 1 x 1 with backing store size 1 x 4294967269 using content scaling factor 1.0
GL_VERSION = 4.1.0.0
GL_VENDOR = ATI Technologies Inc.
GL_RENDERER = AMD Radeon Pro W5700X OpenGL Engine
GL_EXTENSIONS =
GL_ARB_blend_func_extended
GL_ARB_draw_buffers_blend
GL_ARB_draw_indirect
GL_ARB_ES2_compatibility
GL_ARB_explicit_attrib_location
GL_ARB_gpu_shader_fp64
GL_ARB_gpu_shader5
GL_ARB_instanced_arrays
GL_ARB_internalformat_query
GL_ARB_occlusion_query2
GL_ARB_sample_shading
GL_ARB_sampler_objects
GL_ARB_separate_shader_objects
GL_ARB_shader_bit_encoding
GL_ARB_shader_subroutine
GL_ARB_shading_language_include
GL_ARB_tessellation_shader
GL_ARB_texture_buffer_object_rgb32
GL_ARB_texture_cube_map_array
GL_ARB_texture_gather
GL_ARB_texture_query_lod
GL_ARB_texture_rgb10_a2ui
GL_ARB_texture_storage
GL_ARB_texture_swizzle
GL_ARB_timer_query
GL_ARB_transform_feedback2
GL_ARB_transform_feedback3
GL_ARB_vertex_attrib_64bit
GL_ARB_vertex_type_2_10_10_10_rev
GL_ARB_viewport_array
GL_EXT_debug_label
GL_EXT_debug_marker
GL_EXT_depth_bounds_test
GL_EXT_texture_compression_s3tc
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_mirror_clamp
GL_EXT_texture_sRGB_decode
GL_APPLE_client_storage
GL_APPLE_container_object_shareable
GL_APPLE_flush_render
GL_APPLE_object_purgeable
GL_APPLE_rgb_422
GL_APPLE_row_bytes
GL_APPLE_texture_range
GL_ATI_texture_mirror_once
GL_NV_texture_barrier
**************************************
*** OpenGL 3+ Renderer Started ***
**************************************
Registering ResourceManager for type GpuProgram
GL3+: Using FBOs for rendering to textures
FBO PF_UNKNOWN depth/stencil support: D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_L8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_L16 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_A8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_BYTE_LA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R5G6B5 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_B5G6R5 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_A4R4G4B4 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_A1R5G5B5 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R8G8B8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_B8G8R8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_A8R8G8B8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_A8B8G8R8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_B8G8R8A8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_A2R10G10B10 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_A2B10G10R10 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_FLOAT16_RGB depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_FLOAT16_RGBA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_FLOAT32_RGB depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_FLOAT32_RGBA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_X8R8G8B8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_X8B8G8R8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R8G8B8A8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_DEPTH_DEPRECATED depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_SHORT_RGBA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R3G3B2 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_FLOAT16_R depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_FLOAT32_R depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_SHORT_GR depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_FLOAT16_GR depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_FLOAT32_GR depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_SHORT_RGB depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R11G11B10_FLOAT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R8_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R8G8_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R8G8B8_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R8G8B8A8_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R16_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R16G16_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R16G16B16_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R16G16B16A16_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R32_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R32G32_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R32G32B32_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R32G32B32A32_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R8_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R8G8_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R8G8B8_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R8G8B8A8_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R16_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R16G16_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R16G16B16_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R16G16B16A16_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R32_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R32G32_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R32G32B32_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R32G32B32A32_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_RG8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R8_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R8G8_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R8G8B8_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R8G8B8A8_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R16_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R16G16_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R16G16B16_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_R16G16B16A16_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_D24_UNORM_S8_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_D24_UNORM_X8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_X24_S8_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_D24_UNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_D16_UNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_D32_FLOAT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_D32_FLOAT_X24_S8_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_D32_FLOAT_X24_X8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
FBO PF_X32_X24_S8_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8
[GL] : Valid FBO targets PF_UNKNOWN PF_L8 PF_L16 PF_A8 PF_BYTE_LA PF_R5G6B5 PF_B5G6R5 PF_A4R4G4B4 PF_A1R5G5B5 PF_R8G8B8 PF_B8G8R8 PF_A8R8G8B8 PF_A8B8G8R8 PF_B8G8R8A8 PF_A2R10G10B10 PF_A2B10G10R10 PF_FLOAT16_RGB PF_FLOAT16_RGBA PF_FLOAT32_RGB PF_FLOAT32_RGBA PF_X8R8G8B8 PF_X8B8G8R8 PF_R8G8B8A8 PF_DEPTH_DEPRECATED PF_SHORT_RGBA PF_R3G3B2 PF_FLOAT16_R PF_FLOAT32_R PF_SHORT_GR PF_FLOAT16_GR PF_FLOAT32_GR PF_SHORT_RGB PF_R11G11B10_FLOAT PF_R8_UINT PF_R8G8_UINT PF_R8G8B8_UINT PF_R8G8B8A8_UINT PF_R16_UINT PF_R16G16_UINT PF_R16G16B16_UINT PF_R16G16B16A16_UINT PF_R32_UINT PF_R32G32_UINT PF_R32G32B32_UINT PF_R32G32B32A32_UINT PF_R8_SINT PF_R8G8_SINT PF_R8G8B8_SINT PF_R8G8B8A8_SINT PF_R16_SINT PF_R16G16_SINT PF_R16G16B16_SINT PF_R16G16B16A16_SINT PF_R32_SINT PF_R32G32_SINT PF_R32G32B32_SINT PF_R32G32B32A32_SINT PF_RG8 PF_R8_SNORM PF_R8G8_SNORM PF_R8G8B8_SNORM PF_R8G8B8A8_SNORM PF_R16_SNORM PF_R16G16_SNORM PF_R16G16B16_SNORM PF_R16G16B16A16_SNORM PF_D24_UNORM_S8_UINT PF_D24_UNORM_X8 PF_X24_S8_UINT PF_D24_UNORM PF_D16_UNORM PF_D32_FLOAT PF_D32_FLOAT_X24_S8_UINT PF_D32_FLOAT_X24_X8 PF_X32_X24_S8_UINT
RenderSystem capabilities
-------------------------
RenderSystem Name: OpenGL 3+ Rendering Subsystem
GPU Vendor: unknown
Device Name: AMD Radeon Pro W5700X OpenGL Engine
Driver Version: 4.1.0.0
* Fixed function pipeline: no
* Hardware generation of mipmaps: yes
* Texture blending: yes
* Anisotropic texture filtering: yes
* Dot product texture operation: yes
* Cube mapping: yes
* Hardware stencil buffer: yes
- Stencil depth: 8
- Two sided stencil support: yes
- Wrap stencil values: yes
* Hardware vertex / index buffers: yes
* 32-bit index buffers: yes
* Vertex programs: yes
* Number of floating-point constants for vertex programs: 4096
* Number of integer constants for vertex programs: 4096
* Number of boolean constants for vertex programs: 4096
* Fragment programs: yes
* Number of floating-point constants for fragment programs: 4096
* Number of integer constants for fragment programs: 4096
* Number of boolean constants for fragment programs: 4096
* Geometry programs: yes
* Number of floating-point constants for geometry programs: 4096
* Number of integer constants for geometry programs: 4096
* Number of boolean constants for geometry programs: 4096
* Tessellation Hull programs: yes
* Number of floating-point constants for tessellation hull programs: 4096
* Number of integer constants for tessellation hull programs: 4096
* Number of boolean constants for tessellation hull programs: 4096
* Tessellation Domain programs: yes
* Number of floating-point constants for tessellation domain programs: 4096
* Number of integer constants for tessellation domain programs: 4096
* Number of boolean constants for tessellation domain programs: 4096
* Compute programs: no
* Number of floating-point constants for compute programs: 0
* Number of integer constants for compute programs: 0
* Number of boolean constants for compute programs: 0
* Supported Shader Profiles: glsl glsl130 glsl140 glsl150 glsl330 glsl400 glsl410
* Texture Compression: yes
- DXT: yes
- VTC: no
- PVRTC: no
- ATC: no
- ETC1: no
- ETC2: no
- BC4/BC5: yes
- BC6H/BC7: no
- ASTC: no
* Hardware Occlusion Query: yes
* User clip planes: yes
* VET_UBYTE4 vertex element type: yes
* Infinite far plane projection: yes
* Hardware render-to-texture: yes
* Floating point textures: yes
* Non-power-of-two textures: yes
* 1d textures: yes
* Volume textures: yes
* Max Texture resolution (2D) 16384
* Max Texture resolution (3D) 16384
* Max Texture resolution (Cubemaps) 16384
* Multiple Render Targets: 8
- With different bit depths: yes
* Point Sprites: yes
* Extended point parameters: yes
* Max Point Size: 8191
* Vertex texture fetch: yes
* Number of world matrices: 0
* Number of texture units: 16
* Stencil buffer depth: 8
* Number of vertex blend matrices: 0
- Max vertex textures: 16
- Vertex textures shared: yes
* Render to Vertex Buffer : yes
* Hardware Atomic Counters: no
* GL 1.5 without VBO workaround: no
* Frame Buffer objects: yes
* Frame Buffer objects (ARB extension): no
* Frame Buffer objects (ATI extension): no
* PBuffer support: no
* GL 1.5 without HW-occlusion workaround: no
* Vertex Array Objects: yes
* Separate shader objects: no
Registering ResourceManager for type Texture
DefaultWorkQueue('Root') initialising on thread main.
Particle Renderer Type 'billboard' registered
Added resource location '/Volumes/MacPro2_DV1/Code/robotics/gazebo/ign_ediface_ws/install/share/ignition/ignition-rendering5/ogre2/media' of type 'FileSystem' to resource group 'General'
Added resource location '/Volumes/MacPro2_DV1/Code/robotics/gazebo/ign_ediface_ws/install/share/ignition/ignition-rendering5/ogre2/media/materials/programs' of type 'FileSystem' to resource group 'General'
Added resource location '/Volumes/MacPro2_DV1/Code/robotics/gazebo/ign_ediface_ws/install/share/ignition/ignition-rendering5/ogre2/media/materials/scripts' of type 'FileSystem' to resource group 'General'
Added resource location '/Volumes/MacPro2_DV1/Code/robotics/gazebo/ign_ediface_ws/install/share/ignition/ignition-rendering5/ogre2/media/materials/textures' of type 'FileSystem' to resource group 'General'
Added resource location '/Volumes/MacPro2_DV1/Code/robotics/gazebo/ign_ediface_ws/install/share/ignition/ignition-rendering5/ogre2/media/2.0/scripts/Compositors' of type 'FileSystem' to resource group 'General'
Added resource location '/Volumes/MacPro2_DV1/Code/robotics/gazebo/ign_ediface_ws/install/share/ignition/ignition-rendering5/ogre2/media/2.0/scripts/materials/Common' of type 'FileSystem' to resource group 'General'
Added resource location '/Volumes/MacPro2_DV1/Code/robotics/gazebo/ign_ediface_ws/install/share/ignition/ignition-rendering5/ogre2/media/2.0/scripts/materials/Common/GLSL' of type 'FileSystem' to resource group 'General'
Parsing scripts for resource group Autodetect
Finished parsing scripts for resource group Autodetect
Creating resources for group Autodetect
All done
Parsing scripts for resource group General
Parsing script Quad.program
Parsing script depth_camera.material
Parsing script gaussian_noise.material
Parsing script gpu_rays.material
Parsing script picker.material
Parsing script skybox.material
Parsing script thermal.material
Parsing script Copyback.material
Parsing script DepthUtils.material
Parsing script DPSM.material
Parsing script EsmGaussianBlurLogFilter.material
Parsing script GaussianNoise.compositor
Parsing script PbsMaterials.compositor
Parsing script EsmGaussianBlurLogFilter.material.json
Parsing script Mipmaps.material.json
Finished parsing scripts for resource group General
Creating resources for group General
All done
Parsing scripts for resource group Internal
Finished parsing scripts for resource group Internal
Creating resources for group Internal
All done
�[1;36m[GUI] [Dbg] [Scene3D.cc:1115] �[1;36mCreate scene [�[1;36mscene�[1;36m]�[1;36m
Vertex Shader: Ogre/Compositor/Quad_vs_GLSL
Fragment Shader: Ogre/Copy/4xFP32_ps_GLSL
GLSL link result :
WARNING: Could not find vertex shader attribute 'qtangent' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'blendWeights' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'uv5' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'secondary_colour' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'uv1' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'uv4' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'blendWeights2' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'blendIndices' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'uv6' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'blendIndices2' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'colour' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'uv2' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'normal' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'tangent' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'uv3' to match BindAttributeLocation request.
WARNING: Could not find vertex shader attribute 'uv7' to match BindAttributeLocation request.
OpenGL error 0x0500 GL_INVALID_ENUM in virtual void *Ogre::GL3PlusBufferInterface::map(size_t, size_t, Ogre::MappingState, bool) at line 92 for glBindBuffer
OpenGL error 0x0502 GL_INVALID_OPERATION in void *Ogre::GL3PlusDynamicBuffer::map(size_t, size_t, size_t &) at line 91 for mMappedPtr = glMapBufferRange
Stop reason: EXC_BAD_ACCESS (code=1, address=0x171c00) |
ah! that param is important as we are sharing GL context and don't want OGRE to create its own. Looking at this bit of code in ogre 2.1's cocoa window class, it tries to grab an existing opengl context by handle if Alternatively, the other option is to tweak ogre's cocoa window code to support |
I attempted to pass the native handle from Qt to Ogre in an earlier attempt but without success. The Qt headers for the native context In the meanwhile I've finally got a standalone ignition-rendering / QML sample up and running. It uses the same render to FBO on a thread approach as Scene3D but instead of sharing the FBO context with Ogre the ignition camera image is extracted and then rendered as a textured quad. This is similar to the simple demo example but rendering via a FBO to the Qt SceneGraph instead of a GLUT window. It's not pretty but it does work and at least provides a baseline to try and resolve the context issues. Update 2nd Aug @iche033 I think I've got all the pieces for macOS support now. There are a few small patches required in a number of repos but the good news is that ignition-rendering will work on macOS with Qt 5.12 QML projects with Ogre2 using a shared OpenGL context. I don't have Scene3D running, but do have a stand alone app using the same approach of sharing the FBO generated texture with QML (i.e. no intermediate rendering of a quad as described above). You need to set the surface format globally for the application to make sure the app and Ogre2 are both using OpenGL 4.1. There is a small patch to Ogre2OSXCocoaWindow.mm to support shared contexts, and the initialisation sequence needs tweaking. I'll start putting together the PR's over the next few days and submit the test application as a standalone example. Here's a clip of it running: igr_qml_simple_demo_trim.movUpstream Pull Requests Simple Demo QML Example Update 3 Aug The Scene3D plugin is working in the ignition-gui standalone window example on macOS. I've added the simple_demo shapes and lights to the Scene3D plugin to have something to show when it loads - but it's looking promising. Next steps are to check if the same changes work for ignition-gazebo. |
With similar changes
|
@srmainwaring how to get ogre2.2 work on macOS? Server log[Msg] Ignition Gazebo Server v7.0.0~pre1 [Msg] Loading SDF world file[/usr/local/Cellar/ignition-gazebo7/6.999.999~0~20220412/share/ignition/ignition-gazebo7/worlds/shapes.sdf]. [Msg] Loaded level [3] [Msg] No systems loaded from SDF, loading defaults [Dbg] [ServerConfig.cc:970] Loaded (3) plugins from file [/Users/xlla/.ignition/gazebo/7/server.config] [Dbg] [Physics.cc:824] Loaded [ignition::physics::dartsim::Plugin] from library [/usr/local/Cellar/ignition-physics6/5.999.999~0~20220414/lib/ign-physics-6/engine-plugins/libignition-physics-dartsim-plugin.dylib] [Dbg] [SystemManager.cc:49] Loaded system [ignition::gazebo::systems::Physics] for entity [1] [Msg] Create service on [/world/shapes/create] [Msg] Remove service on [/world/shapes/remove] [Msg] Pose service on [/world/shapes/set_pose] [Msg] Pose service on [/world/shapes/set_pose_vector] [Msg] Light configuration service on [/world/shapes/light_config] [Msg] Physics service on [/world/shapes/set_physics] [Msg] SphericalCoordinates service on [/world/shapes/set_spherical_coordinates] [Msg] Enable collision service on [/world/shapes/enable_collision] [Msg] Disable collision service on [/world/shapes/disable_collision] [Msg] Material service on [/world/shapes/visual_config] [Msg] Material service on [/world/shapes/wheel_slip] [Dbg] [SystemManager.cc:49] Loaded system [ignition::gazebo::systems::UserCommands] for entity [1] [Dbg] [SystemManager.cc:49] Loaded system [ignition::gazebo::systems::SceneBroadcaster] for entity [1] [Msg] Serving world controls on [/world/shapes/control], [/world/shapes/control/state] and [/world/shapes/playback/control] [Msg] Serving GUI information on [/world/shapes/gui/info] [Msg] World [shapes] initialized with [default_physics] physics profile. [Msg] Serving world SDF generation service on [/world/shapes/generate_world_sdf] [Msg] Serving world names on [/gazebo/worlds] [Msg] Resource path add service on [/gazebo/resource_paths/add]. [Msg] Resource path get service on [/gazebo/resource_paths/get]. [Msg] Resource paths published on [/gazebo/resource_paths]. [Msg] Server control service on [/server_control]. [Msg] Found no publishers on /stats, adding root stats topic [Msg] Found no publishers on /clock, adding root clock topic [Dbg] [SimulationRunner.cc:494] Creating PostUpdate worker threads: 2 [Dbg] [SimulationRunner.cc:505] Creating postupdate worker thread (0) [Msg] Serving scene information on [/world/shapes/scene/info] [Msg] Serving graph information on [/world/shapes/scene/graph] [Msg] Serving full state on [/world/shapes/state] [Msg] Serving full state (async) on [/world/shapes/state_async] [Msg] Publishing scene information on [/world/shapes/scene/info] [Msg] Publishing entity deletions on [/world/shapes/scene/deletion] [Msg] Publishing state changes on [/world/shapes/state] [Msg] Publishing pose messages on [/world/shapes/pose/info] [Msg] Publishing dynamic pose messages on [/world/shapes/dynamic_pose/info] [Dbg] [EntityComponentManager.cc:1617] Updated state thread iterators: 8 threads processing around 4 entities each. [Wrn] [Component.hh:144] Trying to serialize component with data type [N3sdf3v135WorldE], which doesn't have `operator<<`. Component will not be serialized. GUI log[Msg] Ignition Gazebo GUI v7.0.0~pre1 [Dbg] [Application.cc:94] Initializing application. [Dbg] [Application.cc:120] Qt use opengl 4.1 [GUI] [Dbg] [Application.cc:566] Create main window [GUI] [Dbg] [PathManager.cc:66] Requesting resource paths through [/gazebo/resource_paths/get] [GUI] [Wrn] [Application.cc:815] [QT] file::/Gazebo/GazeboDrawer.qml:147:3: QML Dialog: Binding loop detected for property "implicitHeight" [GUI] [Wrn] [Application.cc:815] [QT] file::/Gazebo/GazeboDrawer.qml:147:3: QML Dialog: Binding loop detected for property "implicitHeight" [GUI] [Dbg] [Gui.cc:156] GUI requesting list of world names. The server may be busy downloading resources. Please be patient. [GUI] [Dbg] [PathManager.cc:55] Received resource paths. [GUI] [Dbg] [Gui.cc:215] Requesting GUI from [/world/shapes/gui/info]... [GUI] [Dbg] [GuiRunner.cc:145] Requesting initial state from [/world/shapes/state]... [GUI] [Msg] Loading config [/Users/xlla/.ignition/gazebo/7/gui.config] [GUI] [Dbg] [Application.cc:429] Loading plugin [MinimalScene] [GUI] [Dbg] [MinimalScene.cc:634] Creating ign-rendering interface for OpenGL [GUI] [Dbg] [MinimalScene.cc:634] Creating ign-rendering interface for OpenGL [GUI] [Dbg] [MinimalScene.cc:788] Creating render thread interface for OpenGL [GUI] [Msg] Added plugin [3D View] to main window [GUI] [Msg] Loaded plugin [MinimalScene] from path [/usr/local/Cellar/ignition-gui7/6.999.999~0~20220414/lib/ign-gui-7/plugins/libMinimalScene.dylib] [GUI] [Dbg] [Application.cc:429] Loading plugin [EntityContextMenuPlugin] [GUI] [Msg] Added plugin [Entity Context Menu] to main window [GUI] [Msg] Loaded plugin [EntityContextMenuPlugin] from path [/usr/local/Cellar/ignition-gazebo7/6.999.999~0~20220412/lib/ign-gazebo-7/plugins/gui/libEntityContextMenuPlugin.dylib] [GUI] [Dbg] [Application.cc:429] Loading plugin [GzSceneManager] [GUI] [Msg] Added plugin [Scene Manager] to main window [GUI] [Msg] Loaded plugin [GzSceneManager] from path [/usr/local/Cellar/ignition-gazebo7/6.999.999~0~20220412/lib/ign-gazebo-7/plugins/gui/libGzSceneManager.dylib] [GUI] [Dbg] [Application.cc:429] Loading plugin [InteractiveViewControl] [GUI] [Msg] Camera view controller topic advertised on [/gui/camera/view_control] [GUI] [Msg] Added plugin [Interactive view control] to main window [GUI] [Msg] Loaded plugin [InteractiveViewControl] from path [/usr/local/Cellar/ignition-gui7/6.999.999~0~20220414/lib/ign-gui-7/plugins/libInteractiveViewControl.dylib] [GUI] [Dbg] [Application.cc:429] Loading plugin [CameraTracking] [GUI] [Msg] Added plugin [Camera tracking] to main window [GUI] [Msg] Loaded plugin [CameraTracking] from path [/usr/local/Cellar/ignition-gui7/6.999.999~0~20220414/lib/ign-gui-7/plugins/libCameraTracking.dylib] [GUI] [Dbg] [Application.cc:429] Loading plugin [MarkerManager] [GUI] [Msg] Listening to stats on [/world/shapes/stats] [GUI] [Msg] Added plugin [Marker Manager] to main window [GUI] [Msg] Loaded plugin [MarkerManager] from path [/usr/local/Cellar/ignition-gui7/6.999.999~0~20220414/lib/ign-gui-7/plugins/libMarkerManager.dylib] [GUI] [Dbg] [Application.cc:429] Loading plugin [SelectEntities] [GUI] [Msg] Added plugin [Select entities] to main window [GUI] [Msg] Loaded plugin [SelectEntities] from path [/usr/local/Cellar/ignition-gazebo7/6.999.999~0~20220412/lib/ign-gazebo-7/plugins/gui/libSelectEntities.dylib] [GUI] [Dbg] [Application.cc:429] Loading plugin [Spawn] [GUI] [Msg] Added plugin [Spawn] to main window [GUI] [Msg] Loaded plugin [Spawn] from path [/usr/local/Cellar/ignition-gazebo7/6.999.999~0~20220412/lib/ign-gazebo-7/plugins/gui/libSpawn.dylib] [GUI] [Dbg] [Application.cc:429] Loading plugin [VisualizationCapabilities] [GUI] [Msg] View as transparent service on [/gui/view/transparent] [GUI] [Msg] View as wireframes service on [/gui/view/wireframes] [GUI] [Msg] View center of mass service on [/gui/view/com] [GUI] [Msg] View inertia service on [/gui/view/inertia] [GUI] [Msg] View collisions service on [/gui/view/collisions] [GUI] [Msg] View joints service on [/gui/view/joints] [GUI] [Msg] View frames service on [/gui/view/frames] [GUI] [Msg] Added plugin [Visualization capabilities] to main window [GUI] [Msg] Loaded plugin [VisualizationCapabilities] from path [/usr/local/Cellar/ignition-gazebo7/6.999.999~0~20220412/lib/ign-gazebo-7/plugins/gui/libVisualizationCapabilities.dylib] [GUI] [Dbg] [Application.cc:429] Loading plugin [WorldControl] [GUI] [Msg] Using world control service [/world/shapes/control] [GUI] [Msg] Listening to stats on [/world/shapes/stats] [GUI] [Msg] Added plugin [World control] to main window [GUI] [Msg] Loaded plugin [WorldControl] from path [/usr/local/Cellar/ignition-gui7/6.999.999~0~20220414/lib/ign-gui-7/plugins/libWorldControl.dylib] [GUI] [Dbg] [WorldControl.cc:245] Using an event to share WorldControl msgs with the server [GUI] [Dbg] [Application.cc:429] Loading plugin [WorldStats] [GUI] [Msg] Listening to stats on [/world/shapes/stats] [GUI] [Msg] Added plugin [World stats] to main window [GUI] [Msg] Loaded plugin [WorldStats] from path [/usr/local/Cellar/ignition-gui7/6.999.999~0~20220414/lib/ign-gui-7/plugins/libWorldStats.dylib] [GUI] [Dbg] [Application.cc:429] Loading plugin [Shapes] [GUI] [Msg] Added plugin [Shapes] to main window [GUI] [Msg] Loaded plugin [Shapes] from path [/usr/local/Cellar/ignition-gazebo7/6.999.999~0~20220412/lib/ign-gazebo-7/plugins/gui/libShapes.dylib] [GUI] [Dbg] [Application.cc:429] Loading plugin [Lights] [GUI] [Msg] Added plugin [Lights] to main window [GUI] [Msg] Loaded plugin [Lights] from path [/usr/local/Cellar/ignition-gazebo7/6.999.999~0~20220412/lib/ign-gazebo-7/plugins/gui/libLights.dylib] [GUI] [Dbg] [Application.cc:429] Loading plugin [TransformControl] [GUI] [Dbg] [TransformControl.cc:219] Legacy mode is disabled; this plugin must be used with MinimalScene. [GUI] [Msg] Added plugin [Transform control] to main window [GUI] [Msg] Loaded plugin [TransformControl] from path [/usr/local/Cellar/ignition-gazebo7/6.999.999~0~20220412/lib/ign-gazebo-7/plugins/gui/libTransformControl.dylib] [GUI] [Dbg] [Application.cc:429] Loading plugin [Screenshot] [GUI] [Msg] Screenshot service on [/gui/screenshot] [GUI] [Msg] Added plugin [Screenshot] to main window [GUI] [Msg] Loaded plugin [Screenshot] from path [/usr/local/Cellar/ignition-gui7/6.999.999~0~20220414/lib/ign-gui-7/plugins/libScreenshot.dylib] [GUI] [Dbg] [Application.cc:429] Loading plugin [CopyPaste] [GUI] [Msg] Added plugin [Copy/Paste] to main window [GUI] [Msg] Loaded plugin [CopyPaste] from path [/usr/local/Cellar/ignition-gazebo7/6.999.999~0~20220412/lib/ign-gazebo-7/plugins/gui/libCopyPaste.dylib] [GUI] [Dbg] [Application.cc:429] Loading plugin [ComponentInspector] [GUI] [Msg] Added plugin [Component inspector] to main window [GUI] [Msg] Loaded plugin [ComponentInspector] from path [/usr/local/Cellar/ignition-gazebo7/6.999.999~0~20220412/lib/ign-gazebo-7/plugins/gui/libComponentInspector.dylib] [GUI] [Dbg] [Application.cc:429] Loading plugin [EntityTree] [GUI] [Msg] Added plugin [Entity tree] to main window [GUI] [Msg] Loaded plugin [EntityTree] from path [/usr/local/Cellar/ignition-gazebo7/6.999.999~0~20220412/lib/ign-gazebo-7/plugins/gui/libEntityTree.dylib] [GUI] [Dbg] [Application.cc:299] Loading window config [GUI] [Msg] Using server control service [/server_control] [GUI] [Dbg] [Application.cc:580] Applying config [GUI] [Wrn] [Component.hh:189] Trying to deserialize component with data type [N3sdf3v135WorldE], which doesn't have `operator>>`. Component will not be deserialized. [GUI] [Wrn] [Application.cc:815] [QT] file::/Gazebo/GazeboDrawer.qml:147:3: QML Dialog: Binding loop detected for property "implicitHeight" [GUI] [Wrn] [Application.cc:815] [QT] file::/WorldStats/WorldStats.qml:53:3: QML RowLayout: Binding loop detected for property "x" [GUI] [Dbg] [MinimalScene.cc:634] Creating ign-rendering interface for OpenGL [GUI] [Dbg] [MinimalScene.cc:788] Creating render thread interface for OpenGL [GUI] [Msg] Loading plugin [ignition-rendering-ogre2] [GUI] [Dbg] [MinimalScene.cc:583] Create scene [scene] [GUI] [Dbg] [MinimalScene.cc:820] Creating texture node render interface for OpenGL [GUI] [Msg] Loading plugin [ignition-rendering-ogre2] [GUI] [Dbg] [TransformControl.cc:528] TransformControl plugin is using camera [scene::Camera(65527)] [GUI] [Msg] Loading plugin [ignition-rendering-ogre2] [GUI] [Msg] Loading plugin [ignition-rendering-ogre2] [GUI] [Dbg] [Spawn.cc:289] Spawn plugin is using camera [scene::Camera(65527)] [GUI] [Msg] Loading plugin [ignition-rendering-ogre2] [GUI] [Dbg] [SelectEntities.cc:452] SelectEntities plugin is using camera [scene::Camera(65527)] [GUI] [Msg] Loading plugin [ignition-rendering-ogre2] [GUI] [Dbg] [MarkerManager.cc:173] Advertise /marker/list service. [GUI] [Dbg] [MarkerManager.cc:183] Advertise /marker/list. [GUI] [Dbg] [MarkerManager.cc:193] Advertise /marker_array. [GUI] [Msg] Loading plugin [ignition-rendering-ogre2] [GUI] [Dbg] [CameraTracking.cc:181] CameraTrackingPrivate plugin is moving camera [scene::Camera(65527)] [GUI] [Msg] Move to service on [/gui/move_to] [GUI] [Msg] Follow service on [/gui/follow] [GUI] [Msg] Move to pose service on [/gui/move_to/pose] [GUI] [Msg] Camera pose topic advertised on [/gui/camera/pose] [GUI] [Msg] Follow offset service on [/gui/follow/offset] [GUI] [Msg] Loading plugin [ignition-rendering-ogre2] [GUI] [Dbg] [InteractiveViewControl.cc:130] InteractiveViewControl plugin is moving camera [scene::Camera(65527)] [GUI] [Msg] Loading plugin [ignition-rendering-ogre2] [GUI] [Msg] Loading plugin [ignition-rendering-ogre2] |
Hi @xlla, Gazebo Sim on macOS won't be officially supported until this PR is merged gazebosim/gz-sim#1225 (and this is a handy reminder that I need to get back to that). You will need a build of Gazebo Sim (Garden) that pulls in the branch in the PR rather than main, otherwise Gazebo will attempt to run with OpenGL which is not going to work on macOS as ogre2.2 requires and OpenGL version > 4.2. This is the most likely explanation for the black screen. All the other dependencies required for Metal in gz-rendering etc. are already merged. If you try to use the branch in the PR and run into difficulties can you please add a note to the PR, any additional feedback from macOS users would be helpful. You can verify the Metal rendering is working by building one of the examples in gz-rendering, say simple_demo, which you run as |
Hi @srmainwaring , thanks for your advice, I have merge that PR into my branch, then sensors_demo.sdf get work. I have tested some examples of under layer libs. for gz-rendering , 2.7 for gz-gui , 7.7 |
@xlla looks great, Metal rendering seems to be working for you. OpenGL will not work for Gazebo on macOS, even though the PBS sample for ogre2.2 works, other samples that use OpenGL 4.2+ features will not. Gazebo uses these features => black screen when using OpenGL. Scene3d is deprecated in favour of MinimalScene, and only the latter has the Metal support. Btw I use this patch for gz-gui to fix the gamma on MinimalScene: https://github.com/srmainwaring/ign-gui/tree/feature/ign-gui7-minimalscene-gamma. Edit macOS gamma correction patch for use with gz-gui (i.e. with updated header and project names) |
@srmainwaring , after merged all mentioned PRs and commits, shapes.sdf is work too after apply latest gamma patch. but camera_sensor.sdf didn't. |
You need to ensure the sensors plugin in <plugin
filename="ignition-gazebo-sensors-system"
name="ignition::gazebo::systems::Sensors">
- <render_engine>ogre</render_engine>
+ <render_engine>ogre2</render_engine>
</plugin> |
I got it! thank you very much! |
Ignition GUI builds on macOS, and plugins that don't involve rendering are loaded properly. But the
Scene3D
plugin, which uses Ignition Rendering, fails with both Ogre 1 and Ogre 1.ign gui -s Scene3D
The text was updated successfully, but these errors were encountered: