gazebosim / gz-sim

Open source robotics simulator. The latest version of Gazebo.
https://gazebosim.org
Apache License 2.0
669 stars 262 forks source link

No camera/render on ubuntu (WSLg + vGPU) #920

Closed FirefoxMetzger closed 10 months ago

FirefoxMetzger commented 3 years ago

I am trying to set up Ignition on a Ubuntu VM (WSL2) that has GPU hardware acceleration for both rendering and computation (via the new WSLg). It works almost fine; I get a window that is rendered, responsive and GPU accelerated; however, I don't seem to be able to render the main camera's view (which instead remains black). The same setup using llvmpipe as a (CPU-based) renderer works without issue.

I remember having encountered a similar situation when I tried to install ignition on bare Windows, but I can't find the issue just now (perhaps someone else knows and can link it :) ).

There is another issue that the entire VM crashes whenever I close the GUI while a simulation is running (does not happen with other GUI windows), but that one is secondary for now.

Environment

``` 12:09:25: Creating resource group General 12:09:25: Creating resource group Internal 12:09:25: Creating resource group Autodetect 12:09:25: SceneManagerFactory for type 'DefaultSceneManager' registered. 12:09:25: Registering ResourceManager for type Material 12:09:25: Registering ResourceManager for type Mesh 12:09:25: Registering ResourceManager for type Mesh2 12:09:25: Registering ResourceManager for type OldSkeleton 12:09:25: MovableObjectFactory for type 'ParticleSystem' registered. 12:09:25: ArchiveFactory for archive type FileSystem registered. 12:09:25: ArchiveFactory for archive type Zip registered. 12:09:25: ArchiveFactory for archive type EmbeddedZip registered. 12:09:25: DDS codec registering 12:09:25: FreeImage version: 3.18.0 12:09:25: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details 12:09:25: 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 12:09:25: OITD codec registering 12:09:25: Registering ResourceManager for type HighLevelGpuProgram 12:09:25: MovableObjectFactory for type 'Entity' registered. 12:09:25: MovableObjectFactory for type 'Item' registered. 12:09:25: MovableObjectFactory for type 'Light' registered. 12:09:25: MovableObjectFactory for type 'BillboardSet' registered. 12:09:25: MovableObjectFactory for type 'ManualObject2' registered. 12:09:25: MovableObjectFactory for type 'BillboardChain' registered. 12:09:25: MovableObjectFactory for type 'RibbonTrail' registered. 12:09:25: MovableObjectFactory for type 'WireAabb' registered. 12:09:25: *-*-* OGRE Initialising 12:09:25: *-*-* Version 2.1.0unstable ('B') 12:09:25: OverlayElementFactory for type Panel registered. 12:09:25: OverlayElementFactory for type BorderPanel registered. 12:09:25: OverlayElementFactory for type TextArea registered. 12:09:25: Registering ResourceManager for type Font 12:09:25: Loading library /usr/lib/x86_64-linux-gnu/OGRE-2.1/OGRE/RenderSystem_GL3Plus.so 12:09:25: Installing plugin: GL 3+ RenderSystem 12:09:25: OpenGL 3+ Rendering Subsystem created. 12:09:25: Plugin successfully installed 12:09:25: Loading library /usr/lib/x86_64-linux-gnu/OGRE-2.1/OGRE/Plugin_ParticleFX.so 12:09:25: Installing plugin: ParticleFX 12:09:25: Particle Emitter Type 'Point' registered 12:09:25: Particle Emitter Type 'Box' registered 12:09:25: Particle Emitter Type 'Ellipsoid' registered 12:09:25: Particle Emitter Type 'Cylinder' registered 12:09:25: Particle Emitter Type 'Ring' registered 12:09:25: Particle Emitter Type 'HollowEllipsoid' registered 12:09:25: Particle Affector Type 'LinearForce' registered 12:09:25: Particle Affector Type 'ColourFader' registered 12:09:25: Particle Affector Type 'ColourFader2' registered 12:09:25: Particle Affector Type 'ColourImage' registered 12:09:25: Particle Affector Type 'ColourInterpolator' registered 12:09:25: Particle Affector Type 'Scaler' registered 12:09:25: Particle Affector Type 'Rotator' registered 12:09:25: Particle Affector Type 'DirectionRandomiser' registered 12:09:25: Particle Affector Type 'DeflectorPlane' registered 12:09:25: Plugin successfully installed 12:09:25: CPU Identifier & Features 12:09:25: ------------------------- 12:09:25: * CPU ID: AuthenticAMD: AMD Ryzen 7 5800X 8-Core Processor 12:09:25: * Logical cores: 16 12:09:25: * SSE: yes 12:09:25: * SSE2: yes 12:09:25: * SSE3: yes 12:09:25: * MMX: yes 12:09:25: * MMXEXT: yes 12:09:25: * 3DNOW: no 12:09:25: * 3DNOWEXT: no 12:09:25: * CMOV: yes 12:09:25: * TSC: yes 12:09:25: * FPU: yes 12:09:25: * PRO: yes 12:09:25: * HT: no 12:09:25: ------------------------- 12:09:25: ****************************** *** Starting GLX Subsystem *** ****************************** 12:09:25: GL3PlusRenderSystem::_createRenderWindow "OgreWindow(0)_0", 1x1 windowed miscParams: FSAA=0 border=none contentScalingFactor=1.000000 currentGLContext=true externalGLControl=true gamma=true stereoMode=Frame Sequential 12:09:25: GLXWindow::create used FBConfigID = 363 12:09:25: GL_VERSION = 3.3.0.0 12:09:25: GL_VENDOR = Microsoft Corporation 12:09:25: GL_RENDERER = D3D12 (NVIDIA GeForce RTX 3070) 12:09:25: GL_EXTENSIONS = 12:09:25: GL_AMD_conservative_depth 12:09:25: GL_AMD_draw_buffers_blend 12:09:25: GL_AMD_shader_trinary_minmax 12:09:25: GL_ANGLE_texture_compression_dxt3 12:09:25: GL_ANGLE_texture_compression_dxt5 12:09:25: GL_ARB_ES2_compatibility 12:09:25: GL_ARB_ES3_compatibility 12:09:25: GL_ARB_arrays_of_arrays 12:09:25: GL_ARB_blend_func_extended 12:09:25: GL_ARB_clear_buffer_object 12:09:25: GL_ARB_compressed_texture_pixel_storage 12:09:25: GL_ARB_conservative_depth 12:09:25: GL_ARB_copy_buffer 12:09:25: GL_ARB_debug_output 12:09:25: GL_ARB_depth_buffer_float 12:09:25: GL_ARB_depth_clamp 12:09:25: GL_ARB_direct_state_access 12:09:25: GL_ARB_draw_buffers 12:09:25: GL_ARB_draw_buffers_blend 12:09:25: GL_ARB_draw_elements_base_vertex 12:09:25: GL_ARB_draw_instanced 12:09:25: GL_ARB_explicit_attrib_location 12:09:25: GL_ARB_explicit_uniform_location 12:09:25: GL_ARB_fragment_coord_conventions 12:09:25: GL_ARB_fragment_shader 12:09:25: GL_ARB_framebuffer_object 12:09:25: GL_ARB_framebuffer_sRGB 12:09:25: GL_ARB_get_program_binary 12:09:25: GL_ARB_get_texture_sub_image 12:09:25: GL_ARB_half_float_pixel 12:09:25: GL_ARB_half_float_vertex 12:09:25: GL_ARB_instanced_arrays 12:09:25: GL_ARB_internalformat_query 12:09:25: GL_ARB_internalformat_query2 12:09:25: GL_ARB_invalidate_subdata 12:09:25: GL_ARB_map_buffer_alignment 12:09:25: GL_ARB_map_buffer_range 12:09:25: GL_ARB_multi_bind 12:09:25: GL_ARB_occlusion_query2 12:09:25: GL_ARB_parallel_shader_compile 12:09:25: GL_ARB_pixel_buffer_object 12:09:25: GL_ARB_point_sprite 12:09:25: GL_ARB_program_interface_query 12:09:25: GL_ARB_provoking_vertex 12:09:25: GL_ARB_robustness 12:09:25: GL_ARB_sampler_objects 12:09:25: GL_ARB_seamless_cube_map 12:09:25: GL_ARB_separate_shader_objects 12:09:25: GL_ARB_shader_bit_encoding 12:09:25: GL_ARB_shader_objects 12:09:25: GL_ARB_shader_subroutine 12:09:25: GL_ARB_shader_texture_lod 12:09:25: GL_ARB_shading_language_420pack 12:09:25: GL_ARB_shading_language_include 12:09:25: GL_ARB_shading_language_packing 12:09:25: GL_ARB_stencil_texturing 12:09:25: GL_ARB_sync 12:09:25: GL_ARB_texture_buffer_object 12:09:25: GL_ARB_texture_buffer_object_rgb32 12:09:25: GL_ARB_texture_buffer_range 12:09:25: GL_ARB_texture_compression_rgtc 12:09:25: GL_ARB_texture_filter_anisotropic 12:09:25: GL_ARB_texture_float 12:09:25: GL_ARB_texture_multisample 12:09:25: GL_ARB_texture_non_power_of_two 12:09:25: GL_ARB_texture_query_levels 12:09:25: GL_ARB_texture_query_lod 12:09:25: GL_ARB_texture_rectangle 12:09:25: GL_ARB_texture_rg 12:09:25: GL_ARB_texture_rgb10_a2ui 12:09:25: GL_ARB_texture_stencil8 12:09:25: GL_ARB_texture_storage 12:09:25: GL_ARB_texture_storage_multisample 12:09:25: GL_ARB_texture_swizzle 12:09:25: GL_ARB_timer_query 12:09:25: GL_ARB_uniform_buffer_object 12:09:25: GL_ARB_vertex_array_bgra 12:09:25: GL_ARB_vertex_array_object 12:09:25: GL_ARB_vertex_attrib_binding 12:09:25: GL_ARB_vertex_buffer_object 12:09:25: GL_ARB_vertex_shader 12:09:25: GL_ARB_vertex_type_10f_11f_11f_rev 12:09:25: GL_ARB_vertex_type_2_10_10_10_rev 12:09:25: GL_ATI_blend_equation_separate 12:09:25: GL_ATI_texture_float 12:09:25: GL_EXT_EGL_image_storage 12:09:25: GL_EXT_EGL_sync 12:09:25: GL_EXT_abgr 12:09:25: GL_EXT_blend_equation_separate 12:09:25: GL_EXT_draw_buffers2 12:09:25: GL_EXT_draw_instanced 12:09:25: GL_EXT_framebuffer_blit 12:09:25: GL_EXT_framebuffer_multisample 12:09:25: GL_EXT_framebuffer_multisample_blit_scaled 12:09:25: GL_EXT_framebuffer_object 12:09:25: GL_EXT_framebuffer_sRGB 12:09:25: GL_EXT_packed_depth_stencil 12:09:25: GL_EXT_packed_float 12:09:25: GL_EXT_pixel_buffer_object 12:09:25: GL_EXT_provoking_vertex 12:09:25: GL_EXT_shader_integer_mix 12:09:25: GL_EXT_texture_array 12:09:25: GL_EXT_texture_compression_dxt1 12:09:25: GL_EXT_texture_compression_rgtc 12:09:25: GL_EXT_texture_compression_s3tc 12:09:25: GL_EXT_texture_filter_anisotropic 12:09:25: GL_EXT_texture_integer 12:09:25: GL_EXT_texture_sRGB 12:09:25: GL_EXT_texture_sRGB_decode 12:09:25: GL_EXT_texture_shared_exponent 12:09:25: GL_EXT_texture_snorm 12:09:25: GL_EXT_texture_swizzle 12:09:25: GL_EXT_timer_query 12:09:25: GL_EXT_transform_feedback 12:09:25: GL_EXT_vertex_array_bgra 12:09:25: GL_IBM_multimode_draw_arrays 12:09:25: GL_KHR_context_flush_control 12:09:25: GL_KHR_debug 12:09:25: GL_KHR_no_error 12:09:25: GL_KHR_parallel_shader_compile 12:09:25: GL_KHR_texture_compression_astc_ldr 12:09:25: GL_KHR_texture_compression_astc_sliced_3d 12:09:25: GL_MESA_pack_invert 12:09:25: GL_MESA_shader_integer_functions 12:09:25: GL_MESA_texture_signed_rgba 12:09:25: GL_NV_conditional_render 12:09:25: GL_NV_copy_image 12:09:25: GL_NV_depth_clamp 12:09:25: GL_NV_packed_depth_stencil 12:09:25: GL_OES_EGL_image 12:09:25: GL_S3_s3tc 12:09:25: Supported GLX extensions: GLX_ARB_context_flush_control GLX_ARB_create_context GLX_ARB_create_context_profile GLX_ARB_fbconfig_float GLX_ARB_framebuffer_sRGB GLX_ARB_get_proc_address GLX_ARB_multisample GLX_EXT_create_context_es2_profile GLX_EXT_create_context_es_profile GLX_EXT_fbconfig_packed_float GLX_EXT_framebuffer_sRGB GLX_EXT_import_context GLX_EXT_texture_from_pixmap GLX_EXT_visual_info GLX_EXT_visual_rating GLX_MESA_copy_sub_buffer GLX_MESA_query_renderer GLX_OML_swap_method GLX_SGIS_multisample GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_SGIX_visual_select_group GLX_SGI_make_current_read 12:09:25: ************************************** 12:09:25: *** OpenGL 3+ Renderer Started *** 12:09:25: ************************************** 12:09:25: Registering ResourceManager for type GpuProgram 12:09:25: GL3+: Using FBOs for rendering to textures 12:09:25: FBO PF_UNKNOWN depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_L8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_L16 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_A8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_BYTE_LA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R5G6B5 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_B5G6R5 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_A4R4G4B4 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_A1R5G5B5 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R8G8B8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_B8G8R8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_A8R8G8B8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_A8B8G8R8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_B8G8R8A8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_A2R10G10B10 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_A2B10G10R10 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_FLOAT16_RGB depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_FLOAT16_RGBA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_FLOAT32_RGB depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_FLOAT32_RGBA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_X8R8G8B8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_X8B8G8R8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R8G8B8A8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_DEPTH_DEPRECATED depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_SHORT_RGBA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R3G3B2 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_FLOAT16_R depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_FLOAT32_R depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_SHORT_GR depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_FLOAT16_GR depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_FLOAT32_GR depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_SHORT_RGB depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R11G11B10_FLOAT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R8_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R8G8_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R8G8B8_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R8G8B8A8_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R16_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R16G16_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R16G16B16_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R16G16B16A16_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R32_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R32G32_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R32G32B32_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R32G32B32A32_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R8_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R8G8_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R8G8B8_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R8G8B8A8_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R16_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R16G16_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R16G16B16_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R16G16B16A16_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R32_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R32G32_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R32G32B32_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R32G32B32A32_SINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R9G9B9E5_SHAREDEXP depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_RG8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R8_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R8G8_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R8G8B8_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R8G8B8A8_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R16_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R16G16_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R16G16B16_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_R16G16B16A16_SNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_D24_UNORM_S8_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_D24_UNORM_X8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_X24_S8_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_D24_UNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_D16_UNORM depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_D32_FLOAT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_D32_FLOAT_X24_S8_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_D32_FLOAT_X24_X8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: FBO PF_X32_X24_S8_UINT depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D16S1 D16S4 D16S8 D16S16 D24S0 D24S1 D24S4 D24S8 D24S16 D32S0 D32S1 D32S4 D32S8 D32S16 D32S0 D32S1 D32S4 D32S8 D32S16 Packed-D24S8 Packed-D32S8 12:09:25: [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_R9G9B9E5_SHAREDEXP 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 12:09:25: RenderSystem capabilities 12:09:25: ------------------------- 12:09:25: RenderSystem Name: OpenGL 3+ Rendering Subsystem 12:09:25: GPU Vendor: microsoft 12:09:25: Device Name: D3D12 (NVIDIA GeForce RTX 3070) 12:09:25: Driver Version: 3.3.0.0 12:09:25: * Fixed function pipeline: no 12:09:25: * Hardware generation of mipmaps: yes 12:09:25: * Texture blending: yes 12:09:25: * Anisotropic texture filtering: yes 12:09:25: * Dot product texture operation: yes 12:09:25: * Cube mapping: yes 12:09:25: * Hardware stencil buffer: yes 12:09:25: - Stencil depth: 8 12:09:25: - Two sided stencil support: yes 12:09:25: - Wrap stencil values: yes 12:09:25: * Hardware vertex / index buffers: yes 12:09:25: * 32-bit index buffers: yes 12:09:25: * Vertex programs: yes 12:09:25: * Number of floating-point constants for vertex programs: 16352 12:09:25: * Number of integer constants for vertex programs: 16352 12:09:25: * Number of boolean constants for vertex programs: 16352 12:09:25: * Fragment programs: yes 12:09:25: * Number of floating-point constants for fragment programs: 16380 12:09:25: * Number of integer constants for fragment programs: 16380 12:09:25: * Number of boolean constants for fragment programs: 16380 12:09:25: * Geometry programs: yes 12:09:25: * Number of floating-point constants for geometry programs: 16352 12:09:25: * Number of integer constants for geometry programs: 16352 12:09:25: * Number of boolean constants for geometry programs: 16352 12:09:25: * Tessellation Hull programs: no 12:09:25: * Number of floating-point constants for tessellation hull programs: 0 12:09:25: * Number of integer constants for tessellation hull programs: 0 12:09:25: * Number of boolean constants for tessellation hull programs: 0 12:09:25: * Tessellation Domain programs: no 12:09:25: * Number of floating-point constants for tessellation domain programs: 0 12:09:25: * Number of integer constants for tessellation domain programs: 0 12:09:25: * Number of boolean constants for tessellation domain programs: 0 12:09:25: * Compute programs: no 12:09:25: * Number of floating-point constants for compute programs: 0 12:09:25: * Number of integer constants for compute programs: 0 12:09:25: * Number of boolean constants for compute programs: 0 12:09:25: * Supported Shader Profiles: glsl glsl130 glsl140 glsl150 glsl330 12:09:25: * Texture Compression: yes 12:09:25: - DXT: yes 12:09:25: - VTC: no 12:09:25: - PVRTC: no 12:09:25: - ATC: no 12:09:25: - ETC1: no 12:09:25: - ETC2: yes 12:09:25: - BC4/BC5: yes 12:09:25: - BC6H/BC7: no 12:09:25: - ASTC: no 12:09:25: * Hardware Occlusion Query: yes 12:09:25: * User clip planes: yes 12:09:25: * VET_UBYTE4 vertex element type: yes 12:09:25: * Infinite far plane projection: yes 12:09:25: * Hardware render-to-texture: yes 12:09:25: * Floating point textures: yes 12:09:25: * Non-power-of-two textures: yes 12:09:25: * 1d textures: yes 12:09:25: * Volume textures: yes 12:09:25: * Max Texture resolution (2D) 16384 12:09:25: * Max Texture resolution (3D) 1024 12:09:25: * Max Texture resolution (Cubemaps) 8192 12:09:25: * Multiple Render Targets: 8 12:09:25: - With different bit depths: yes 12:09:25: * Point Sprites: yes 12:09:25: * Extended point parameters: yes 12:09:25: * Max Point Size: 255 12:09:25: * Vertex texture fetch: yes 12:09:25: * Number of world matrices: 0 12:09:25: * Number of texture units: 16 12:09:25: * Stencil buffer depth: 8 12:09:25: * Number of vertex blend matrices: 0 12:09:25: - Max vertex textures: 32 12:09:25: - Vertex textures shared: yes 12:09:25: * Render to Vertex Buffer : yes 12:09:25: * Hardware Atomic Counters: no 12:09:25: * GL 1.5 without VBO workaround: no 12:09:25: * Frame Buffer objects: yes 12:09:25: * Frame Buffer objects (ARB extension): no 12:09:25: * Frame Buffer objects (ATI extension): no 12:09:25: * PBuffer support: no 12:09:25: * GL 1.5 without HW-occlusion workaround: no 12:09:25: * Vertex Array Objects: yes 12:09:25: * Separate shader objects: no 12:09:25: Registering ResourceManager for type Texture 12:09:25: DefaultWorkQueue('Root') initialising on thread main. 12:09:25: Particle Renderer Type 'billboard' registered 12:09:25: Added resource location '/home/firefoxmetzger/workspace/install/share/ignition/ignition-rendering5/ogre2/media' of type 'FileSystem' to resource group 'General' 12:09:25: Added resource location '/home/firefoxmetzger/workspace/install/share/ignition/ignition-rendering5/ogre2/media/materials/programs' of type 'FileSystem' to resource group 'General' 12:09:25: Added resource location '/home/firefoxmetzger/workspace/install/share/ignition/ignition-rendering5/ogre2/media/materials/scripts' of type 'FileSystem' to resource group 'General' 12:09:25: Added resource location '/home/firefoxmetzger/workspace/install/share/ignition/ignition-rendering5/ogre2/media/materials/textures' of type 'FileSystem' to resource group 'General' 12:09:25: Added resource location '/home/firefoxmetzger/workspace/install/share/ignition/ignition-rendering5/ogre2/media/2.0/scripts/Compositors' of type 'FileSystem' to resource group 'General' 12:09:25: Added resource location '/home/firefoxmetzger/workspace/install/share/ignition/ignition-rendering5/ogre2/media/2.0/scripts/materials/Common' of type 'FileSystem' to resource group 'General' 12:09:25: Added resource location '/home/firefoxmetzger/workspace/install/share/ignition/ignition-rendering5/ogre2/media/2.0/scripts/materials/Common/GLSL' of type 'FileSystem' to resource group 'General' 12:09:25: Parsing scripts for resource group Autodetect 12:09:25: Finished parsing scripts for resource group Autodetect 12:09:25: Creating resources for group Autodetect 12:09:25: All done 12:09:25: Parsing scripts for resource group General 12:09:25: Parsing script Quad.program 12:09:25: Parsing script gaussian_noise.material 12:09:25: Parsing script skybox.material 12:09:25: Parsing script thermal.material 12:09:25: Parsing script picker.material 12:09:25: Parsing script depth_camera.material 12:09:25: Parsing script gpu_rays.material 12:09:25: Parsing script DepthUtils.material 12:09:25: Parsing script Copyback.material 12:09:25: Parsing script EsmGaussianBlurLogFilter.material 12:09:25: Parsing script DPSM.material 12:09:25: Parsing script GaussianNoise.compositor 12:09:25: Parsing script PbsMaterials.compositor 12:09:25: Finished parsing scripts for resource group General 12:09:25: Creating resources for group General 12:09:25: All done 12:09:25: Parsing scripts for resource group Internal 12:09:25: Finished parsing scripts for resource group Internal 12:09:25: Creating resources for group Internal 12:09:25: All done 12:09:25: Can't assign material scene::Material(65512) because this Material does not exist. Have you forgotten to define it in a .material script? 12:09:25: Can't assign material scene::Material(65506) because this Material does not exist. Have you forgotten to define it in a .material script? 12:09:25: Can't assign material scene::Material(65500) because this Material does not exist. Have you forgotten to define it in a .material script? 12:09:25: Can't assign material scene::Material(65494) because this Material does not exist. Have you forgotten to define it in a .material script? 12:09:25: GLSL compiled: 536969344PixelShader_ps 0:311(28): warning: `nNormal' used uninitialized 0:312(28): warning: `nNormal' used uninitialized 0:315(14): warning: `material' used uninitialized 0:315(30): warning: `material' used uninitialized 0:334(18): warning: `F0' used uninitialized 0:334(60): warning: `F0' used uninitialized 0:337(37): warning: `material' used uninitialized 0:341(21): warning: `material' used uninitialized 0:342(45): warning: `material' used uninitialized 0:343(50): warning: `material' used uninitialized 0:351(69): warning: `diffuseCol' used uninitialized 12:09:25: GLSL compiled: 537067648PixelShader_ps 0:312(28): warning: `nNormal' used uninitialized 0:313(28): warning: `nNormal' used uninitialized 0:316(14): warning: `material' used uninitialized 0:316(30): warning: `material' used uninitialized 0:335(18): warning: `F0' used uninitialized 0:335(60): warning: `F0' used uninitialized 0:338(37): warning: `material' used uninitialized 0:342(21): warning: `material' used uninitialized 0:343(45): warning: `material' used uninitialized 0:344(50): warning: `material' used uninitialized 0:352(69): warning: `diffuseCol' used uninitialized 12:09:25: Vertex Shader: 537067648VertexShader_vs Fragment Shader: 537067648PixelShader_ps GLSL validation result : active samplers with a different type refer to the same texture image unit 12:09:25: GLSL compiled: 537100416PixelShader_ps 0:311(28): warning: `nNormal' used uninitialized 0:312(28): warning: `nNormal' used uninitialized 0:315(14): warning: `material' used uninitialized 0:315(30): warning: `material' used uninitialized 0:334(18): warning: `F0' used uninitialized 0:334(60): warning: `F0' used uninitialized 0:337(37): warning: `material' used uninitialized 0:341(21): warning: `material' used uninitialized 0:342(45): warning: `material' used uninitialized 0:343(50): warning: `material' used uninitialized 0:351(69): warning: `diffuseCol' used uninitialized ```

Description

screenshot-of-actual-behavior

Steps to reproduce

  1. Setup WSL2 + https://github.com/microsoft/wslg
  2. Install ignition using preferred method following the instructions (I tried source and binary versions)
  3. ign shapes.sdf -v3
  4. Wonder what is going wrong.
traversaro commented 2 years ago

There is a similar problem when trying to run ignition gazebo 6.0.0 (installed via apt) on WSL2 with X server (no WSLg). I tried with both X410 and Xming, but the output is the same: nothing is rendered. Classic Gazebo works fine on both WSL1/2 with X server (there were some issue back in time, but they were solved, see: https://github.com/osrf/gazebo/issues/2351 ) and also WSLg (Classic Gazebo was actually one of the applications used by Microsoft to showcase https://devblogs.microsoft.com/commandline/the-initial-preview-of-gui-app-support-is-now-available-for-the-windows-subsystem-for-linux-2/).

I wonder if it may be worth to open an issue also in https://github.com/microsoft/wslg for this issue.

traversaro commented 2 years ago

Source or binary build? Tested on: Fortress (binary) Edifice (binary + source)

By the way, did you tested with Citadel? I just read in https://github.com/ignitionrobotics/ign-gazebo/issues/1066#issuecomment-939471579 that @0smile was able to run Ign Gazebo in WSLg with Citadel, but has a crash with Fortress.

FirefoxMetzger commented 2 years ago

@traversaro Good point; I have not tested Citadel. Mainly because gym-ignition targets the latest ign-gazebo, so it wouldn't do much for my use-case. I will give it a try next week (currently at a conference) and report back on how it goes.

FirefoxMetzger commented 2 years ago

@traversaro I just tried Citadel with WSLg (binary build). It doesn't render shapes.sdf either (on my machine) and looks the same as the issue I described in the original post. I do, however, get an error message that I don't get with the other ignition versions:

[GUI] [Err] [Application.cc:324] Failed to load plugin [Lights] : couldn't find shared library.

So it could simply be that the light sources are not working and, because of that, I only ever see a gray screen.

Here is the full log for reference in case that is interesting:

full log ``` $ ign gazebo -v4 shapes.sdf [Msg] Ignition Gazebo GUI v3.9.0 [Msg] Ignition Gazebo Server v3.9.0 [Msg] Loading SDF world file[/usr/share/ignition/ignition-gazebo3/worlds/shapes.sdf]. [Dbg] [Application.cc:87] Initializing application. [GUI] [Dbg] [Application.cc:427] Create main window [Dbg] [EntityComponentManager.cc:641] Using components of type [2251689575469537287] / [ign_gazebo_components.World]. [Dbg] [EntityComponentManager.cc:641] Using components of type [13994732549916512682] / [ign_gazebo_components.Name]. [Dbg] [EntityComponentManager.cc:641] Using components of type [12592746352568925681] / [ign_gazebo_components.Gravity]. [Dbg] [EntityComponentManager.cc:641] Using components of type [2188341333082264598] / [ign_gazebo_components.Physics]. [Dbg] [EntityComponentManager.cc:641] Using components of type [13224937992534617849] / [ign_gazebo_components.MagneticField]. [Dbg] [EntityComponentManager.cc:641] Using components of type [3630648173860223239] / [ign_gazebo_components.PhysicsEnginePlugin]. [Dbg] [EntityComponentManager.cc:641] Using components of type [17459188283658606303] / [ign_gazebo_components.RenderEngineServerPlugin]. [Dbg] [EntityComponentManager.cc:641] Using components of type [8705992680619689917] / [ign_gazebo_components.RenderEngineGuiPlugin]. [Dbg] [EntityComponentManager.cc:641] Using components of type [8753193699724811771] / [ign_gazebo_components.Wind]. [Dbg] [EntityComponentManager.cc:641] Using components of type [12173050716021724529] / [ign_gazebo_components.WorldLinearVelocity]. [Dbg] [EntityComponentManager.cc:641] Using components of type [15943768124495574352] / [ign_gazebo_components.WorldLinearVelocitySeed]. [Dbg] [EntityComponentManager.cc:641] Using components of type [3297509811873971798] / [ign_gazebo_components.ParentEntity]. [Dbg] [EntityComponentManager.cc:641] Using components of type [17100615127981600159] / [ign_gazebo_components.Scene]. [Dbg] [EntityComponentManager.cc:641] Using components of type [17605309075052480649] / [ign_gazebo_components.Atmosphere]. [Dbg] [EntityComponentManager.cc:641] Using components of type [8064491505919932473] / [ign_gazebo_components.Level]. [Dbg] [EntityComponentManager.cc:641] Using components of type [2668898242563798256] / [ign_gazebo_components.DefaultLevel]. [Dbg] [EntityComponentManager.cc:641] Using components of type [11371360182141354106] / [ign_gazebo_components.LevelEntityNames]. [Dbg] [EntityComponentManager.cc:641] Using components of type [4981278897826323946] / [ign_gazebo_components.WorldSdf]. [Dbg] [EntityComponentManager.cc:641] Using components of type [6687176221774458630] / [ign_gazebo_components.Model]. [Dbg] [EntityComponentManager.cc:641] Using components of type [6612894081701502240] / [ign_gazebo_components.Pose]. [Dbg] [EntityComponentManager.cc:641] Using components of type [8546580419506082455] / [ign_gazebo_components.Static]. [Dbg] [EntityComponentManager.cc:641] Using components of type [9712747055438129860] / [ign_gazebo_components.WindMode]. [Dbg] [EntityComponentManager.cc:641] Using components of type [5661073481138181711] / [ign_gazebo_components.SelfCollide]. [Dbg] [EntityComponentManager.cc:641] Using components of type [11683062252779233161] / [ign_gazebo_components.SourceFilePath]. [Dbg] [EntityComponentManager.cc:641] Using components of type [5081358965268446661] / [ign_gazebo_components.Link]. [Dbg] [EntityComponentManager.cc:641] Using components of type [8112400427272910195] / [ign_gazebo_components.Inertial]. [Dbg] [EntityComponentManager.cc:641] Using components of type [16454635107327670381] / [ign_gazebo_components.Visual]. [Dbg] [EntityComponentManager.cc:641] Using components of type [13011964647677164955] / [ign_gazebo_components.CastShadows]. [Dbg] [EntityComponentManager.cc:641] Using components of type [13440282432131634483] / [ign_gazebo_components.Transparency]. [Dbg] [EntityComponentManager.cc:641] Using components of type [17121648710877364109] / [ign_gazebo_components.Geometry]. [Dbg] [EntityComponentManager.cc:641] Using components of type [9853217982010720764] / [ign_gazebo_components.Material]. [Dbg] [EntityComponentManager.cc:641] Using components of type [17938588655714334139] / [ign_gazebo_components.Collision]. [Dbg] [EntityComponentManager.cc:641] Using components of type [9225962031573086509] / [ign_gazebo_components.CollisionElement]. [Dbg] [EntityComponentManager.cc:641] Using components of type [10522242218202596205] / [ign_gazebo_components.CanonicalLink]. [Dbg] [EntityComponentManager.cc:641] Using components of type [11536476718181283925] / [ign_gazebo_components.ModelSdf]. [Dbg] [EntityComponentManager.cc:641] Using components of type [3866641186784191835] / [ign_gazebo_components.Light]. [Msg] Loaded level [3] [Msg] No systems loaded from SDF, loading defaults [Dbg] [ServerConfig.cc:926] Loaded (3) plugins from file [/home/firefoxmetzger/.ignition/gazebo/server.config] [Dbg] [Physics.cc:529] Loaded [ignition::physics::dartsim::Plugin] from library [/usr/lib/x86_64-linux-gnu/ign-physics-2/engine-plugins/libignition-physics-dartsim-plugin.so] [Dbg] [SimulationRunner.cc:846] 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] Physics service on [/world/shapes/set_physics] [Dbg] [SimulationRunner.cc:846] Loaded system [ignition::gazebo::systems::UserCommands] for entity [1] [Dbg] [SimulationRunner.cc:846] Loaded system [ignition::gazebo::systems::SceneBroadcaster] for entity [1] [Msg] Serving world controls on [/world/shapes/control] 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]. NVD3D10: CPU cyclestats are disabled on client virtualization NVD3D10: CPU cyclestats are disabled on client virtualization [GUI] [Wrn] [Application.cc:669] [QT] file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml:102:33: QML Settings: Failed to initialize QSettings instance. Status code is: 1 [GUI] [Wrn] [Application.cc:669] [QT] file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml:102:33: QML Settings: The following application identifiers have not been set: QVector("organizationName", "organizationDomain") [GUI] [Wrn] [Application.cc:669] [QT] file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml:102:33: QML Settings: Failed to initialize QSettings instance. Status code is: 1 [GUI] [Wrn] [Application.cc:669] [QT] file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml:102:33: QML Settings: The following application identifiers have not been set: QVector("organizationName", "organizationDomain") [Msg] Found no publishers on /stats, adding root stats topic [Msg] Found no publishers on /clock, adding root clock topic [Dbg] [SimulationRunner.cc:497] Creating PostUpdate worker threads: 2 [Dbg] [SimulationRunner.cc:510] 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] [GUI] [Dbg] [PathManager.cc:66] Requesting resource paths through [/gazebo/resource_paths/get] [GUI] [Wrn] [Application.cc:669] [QT] file::/Gazebo/GazeboDrawer.qml:178:3: QML Dialog: Binding loop detected for property "implicitHeight" [GUI] [Wrn] [Application.cc:669] [QT] file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml:102:33: QML Settings: Failed to initialize QSettings instance. Status code is: 1 [GUI] [Wrn] [Application.cc:669] [QT] file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml:102:33: QML Settings: The following application identifiers have not been set: QVector("organizationName", "organizationDomain") [GUI] [Wrn] [Application.cc:669] [QT] file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml:102:33: QML Settings: Failed to initialize QSettings instance. Status code is: 1 [GUI] [Wrn] [Application.cc:669] [QT] file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml:102:33: QML Settings: The following application identifiers have not been set: QVector("organizationName", "organizationDomain") [GUI] [Wrn] [Application.cc:669] [QT] file::/Gazebo/GazeboDrawer.qml:178:3: QML Dialog: Binding loop detected for property "implicitHeight" [GUI] [Dbg] [Gui.cc:151] 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:202] Requesting GUI from [/world/shapes/gui/info]... [GUI] [Dbg] [GuiRunner.cc:60] Requesting initial state from [/world/shapes/state]... [Dbg] [EntityComponentManager.cc:961] Updated state thread iterators: 16 threads processing around 2 components each. [Wrn] [Component.hh:144] Trying to serialize component with data type [[Wrn] [Component.hh:144] Trying to serialize component with data type [Trying to serialize component with data type [N3sdf2v95ModelEN3sdf2v95ModelE], which doesn't have ], which doesn't have [Wrn] [Component.hh:144] [Wrn] [Component.hh:144] Trying to serialize component with data type [N3sdf2v95ModelE], which doesn't have ], which doesn't have [Wrn] [Component.hh:144] Trying to serialize component with data type [Trying to serialize component with data type [[Wrn] [Component.hh:144] Trying to serialize component with data type [N3sdf2v95WorldE], which doesn't have N3sdf2v95ModelE`operator<<`. Component will not be serialized.`operator<<`. Component will not be serialized.], which doesn't have `operator<<`. Component will not be serialized.], which doesn't have `operator<<`. Component will not be serialized. `operator<<`. Component will not be serialized. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [17100615127981600159] / [ign_gazebo_components.Scene]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [12592746352568925681] / [ign_gazebo_components.Gravity]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [2188341333082264598] / [ign_gazebo_components.Physics]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [2251689575469537287] / [ign_gazebo_components.World]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [3630648173860223239] / [ign_gazebo_components.PhysicsEnginePlugin]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [13224937992534617849] / [ign_gazebo_components.MagneticField]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [17605309075052480649] / [ign_gazebo_components.Atmosphere]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [13994732549916512682] / [ign_gazebo_components.Name]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [8753193699724811771] / [ign_gazebo_components.Wind]. [GUI] [Msg] Loading config [/home/firefoxmetzger/.ignition/gazebo/gui.config] [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [3297509811873971798] / [] / [[GUI] [Dbg] [Application.cc:307] Loading plugin [GzScene3DLoading plugin [ign_gazebo_components.ParentEntity] ]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [15943768124495574352] / [ign_gazebo_components.WorldLinearVelocitySeed]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [12173050716021724529] / [ign_gazebo_components.WorldLinearVelocity]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [2668898242563798256] / [ign_gazebo_components.DefaultLevel]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [8064491505919932473] / [ign_gazebo_components.Level]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [11371360182141354106] / [ign_gazebo_components.LevelEntityNames]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [9712747055438129860] / [ign_gazebo_components.WindMode]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [6687176221774458630] / [ign_gazebo_components.Model]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [8546580419506082455] / [ign_gazebo_components.Static]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [11683062252779233161] / [ign_gazebo_components.SourceFilePath]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [5661073481138181711] / [ign_gazebo_components.SelfCollide]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [6612894081701502240] / [ign_gazebo_components.Pose]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [10522242218202596205] / [ign_gazebo_components.CanonicalLink]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [8112400427272910195] / [ign_gazebo_components.Inertial]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [5081358965268446661] / [ign_gazebo_components.Link]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [13440282432131634483] / [ign_gazebo_components.Transparency]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [13011964647677164955] / [ign_gazebo_components.CastShadows]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [9853217982010720764] / [ign_gazebo_components.Material]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [17121648710877364109] / [ign_gazebo_components.Geometry]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [16454635107327670381] / [ign_gazebo_components.Visual]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [17938588655714334139] / [ign_gazebo_components.Collision]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [9225962031573086509] / [ign_gazebo_components.CollisionElement]. [GUI] [Dbg] [EntityComponentManager.cc:641] Using components of type [3866641186784191835] / [ign_gazebo_components.Light]. [GUI] [Msg] Video recorder stats topic advertised on [/gui/record_video/stats] [GUI] [Msg] Transform mode service on [/gui/transform_mode] [GUI] [Msg] Record video service on [/gui/record_video] [GUI] [Msg] Move to service on [/gui/move_to] [GUI] [Msg] Follow service on [/gui/follow] [GUI] [Msg] View angle service on [/gui/view_angle] [GUI] [Msg] Move to pose service on [/gui/move_to/pose] [GUI] [Msg] Camera pose topic advertised on [/gui/camera/pose] [GUI] [Msg] View collisions service on [/gui/view/collisions] [GUI] [Msg] Added plugin [3D View] to main window [GUI] [Msg] Loaded plugin [GzScene3D] from path [/usr/lib/x86_64-linux-gnu/ign-gazebo-3/plugins/gui/libGzScene3D.so] [GUI] [Dbg] [Application.cc:307] Loading plugin [WorldControl] [GUI] [Wrn] [Application.cc:669] [QT] file::/WorldControl/WorldControl.qml:88:3: QML RoundButton: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead. [GUI] [Msg] Using world control service [/world/shapes/control] [GUI] [Wrn] [Application.cc:669] [QT] file::/WorldControl/WorldControl.qml:88:3: QML RoundButton: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead. [GUI] [Msg] Listening to stats on [/world/shapes/stats] [GUI] [Dbg] [Scene3D.cc:2663] RenderEngineGuiPlugin component not found, render engine won't be set from the ECM [GUI] [Msg] Added plugin [World control] to main window [GUI] [Msg] Loaded plugin [WorldControl] from path [/usr/lib/x86_64-linux-gnu/ign-gui-3/plugins/libWorldControl.so] [GUI] [Dbg] [Application.cc:307] 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/lib/x86_64-linux-gnu/ign-gui-3/plugins/libWorldStats.so] [GUI] [Dbg] [Application.cc:307] Loading plugin [Shapes] [GUI] [Msg] Added plugin [Shapes] to main window [GUI] [Msg] Loaded plugin [Shapes] from path [/usr/lib/x86_64-linux-gnu/ign-gazebo-3/plugins/gui/libShapes.so] [GUI] [Dbg] [Application.cc:307] Loading plugin [Lights] [GUI] [Err] [Application.cc:324] Failed to load plugin [Lights] : couldn't find shared library. [GUI] [Dbg] [Application.cc:307] Loading plugin [TransformControl] [GUI] [Msg] Added plugin [Transform control] to main window [GUI] [Msg] Loaded plugin [TransformControl] from path [/usr/lib/x86_64-linux-gnu/ign-gazebo-3/plugins/gui/libTransformControl.so] [GUI] [Dbg] [Application.cc:307] Loading plugin [Screenshot] [GUI] [Wrn] [Application.cc:669] [QT] file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml:102:33: QML Settings: Failed to initialize QSettings instance. Status code is: 1 [GUI] [Wrn] [Application.cc:669] [QT] file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Dialogs/DefaultFileDialog.qml:102:33: QML Settings: The following application identifiers have not been set: QVector("organizationName", "organizationDomain") [GUI] [Msg] Screenshot service on [/gui/screenshot] [GUI] [Msg] Added plugin [Screenshot] to main window [GUI] [Msg] Loaded plugin [Screenshot] from path [/usr/lib/x86_64-linux-gnu/ign-gui-3/plugins/libScreenshot.so] [GUI] [Dbg] [Application.cc:307] Loading plugin [ComponentInspector] [GUI] [Msg] Added plugin [Component inspector] to main window [GUI] [Msg] Loaded plugin [ComponentInspector] from path [/usr/lib/x86_64-linux-gnu/ign-gazebo-3/plugins/gui/libComponentInspector.so] [GUI] [Dbg] [Application.cc:307] Loading plugin [EntityTree] [GUI] [Msg] Added plugin [Entity tree] to main window [GUI] [Msg] Loaded plugin [EntityTree] from path [/usr/lib/x86_64-linux-gnu/ign-gazebo-3/plugins/gui/libEntityTree.so] [GUI] [Dbg] [Application.cc:260] Loading window config [GUI] [Dbg] [Application.cc:441] Applying config [GUI] [Wrn] [Application.cc:669] [QT] file::/Gazebo/GazeboDrawer.qml:178:3: QML Dialog: Binding loop detected for property "implicitHeight" [GUI] [Msg] Loading plugin [ignition-rendering-ogre2] [GUI] [Wrn] [Application.cc:669] [QT] file::/ComponentInspector/Physics.qml:89:5: QML Image: Cannot open: file::/ComponentInspector/plottable_icon.svg [GUI] [Wrn] [Application.cc:669] [QT] file::/ComponentInspector/Physics.qml:89:5: QML Image: Cannot open: file::/ComponentInspector/plottable_icon.svg [GUI] [Dbg] [RenderUtil.cc:1201] Create scene [scene] [GUI] [Dbg] [Gui.cc:292] Shutting down ign-gazebo-gui [GUI] [Dbg] [Application.cc:130] Terminating application. [GUI] [Msg] Loading plugin [ignition-rendering-ogre2] [GUI] [Dbg] [Scene3D.cc:1694] Destroy scene [scene] [Dbg] [SignalHandler.cc:141] Received signal[2]. [Dbg] [ServerPrivate.cc:108] Server received signal[2] [Dbg] [ign.cc:362] Shutting down ign-gazebo-server [Dbg] [SimulationRunner.cc:526] Exiting postupdate worker thread (0) ```
traversaro commented 2 years ago

Cool, thanks! I wonder if this problem is related to Wayland that is used by WSLg, not sure if anyone ever tested Ignition Gazebo on actual Linux install using Wayland instead of using X.

FirefoxMetzger commented 2 years ago

@traversaro I agree, there could be a high chance that it is a Wayland vs X problem.

After my current project finishes, I will hard-reset my Linux machine at work. I'll use that as an opportunity to get a clean bare-bones Ubuntu 20.04 + Wayland. Let's see what happens then.

iche033 commented 2 years ago

one thing to try on Fortress is to launch ign-gazebo with the --headless arg, which asks it to use EGL instead of X, and see if that makes any difference.

blakermchale commented 2 years ago

I've been trying to use ign-gazebo on WSLg with WIndows 11 also and tried with the headless command ign gazebo shapes.sdf --headless-rendering. It still doesn't render the scene.

chapulina commented 2 years ago

@blakermchale , what version of Ignition and Ogre 2 do you have installed? Are you able to get Ogre logs when running with headless rendering?

blakermchale commented 2 years ago

@chapulina, when I run ign gazebo --version I get: Ignition Gazebo, version 6.1.0
My ogre version is Ogre 2.2

Here are my ogre logs from ~/.ignition/rendering/ogre2.log:

Ogre2 Log ``` 19:00:54: Creating resource group General 19:00:54: Creating resource group Internal 19:00:54: Creating resource group Autodetect 19:00:54: SceneManagerFactory for type 'DefaultSceneManager' registered. 19:00:54: Registering ResourceManager for type Material 19:00:54: Registering ResourceManager for type Mesh 19:00:54: Registering ResourceManager for type Mesh2 19:00:54: Registering ResourceManager for type OldSkeleton 19:00:54: MovableObjectFactory for type 'ParticleSystem' registered. 19:00:54: ArchiveFactory for archive type FileSystem registered. 19:00:54: ArchiveFactory for archive type Zip registered. 19:00:54: ArchiveFactory for archive type EmbeddedZip registered. 19:00:54: DDS codec registering 19:00:54: FreeImage version: 3.18.0 19:00:54: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details 19:00:54: 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 19:00:54: OITD codec registering 19:00:54: Registering ResourceManager for type HighLevelGpuProgram 19:00:54: MovableObjectFactory for type 'Decal' registered. 19:00:54: MovableObjectFactory for type 'InternalCubemapProbe' registered. 19:00:54: MovableObjectFactory for type 'Entity' registered. 19:00:54: MovableObjectFactory for type 'Item' registered. 19:00:54: MovableObjectFactory for type 'Light' registered. 19:00:54: MovableObjectFactory for type 'Rectangle2Dv2' registered. 19:00:54: MovableObjectFactory for type 'BillboardSet' registered. 19:00:54: MovableObjectFactory for type 'ManualObject2' registered. 19:00:54: MovableObjectFactory for type 'BillboardChain' registered. 19:00:54: MovableObjectFactory for type 'RibbonTrail' registered. 19:00:54: MovableObjectFactory for type 'WireAabb' registered. 19:00:54: *-*-* OGRE Initialising 19:00:54: *-*-* Version 2.2.6 (Cerberus) 19:00:54: OverlayElementFactory for type Panel registered. 19:00:54: OverlayElementFactory for type BorderPanel registered. 19:00:54: OverlayElementFactory for type TextArea registered. 19:00:54: Registering ResourceManager for type Font 19:00:54: Loading library /usr/lib/x86_64-linux-gnu/OGRE-2.2/OGRE/RenderSystem_GL3Plus.so 19:00:54: Installing plugin: GL 3+ RenderSystem 19:00:54: OpenGL 3+ Rendering Subsystem created. 19:00:54: Found Num EGL Devices: 1 19:00:54: EGL Device: EGL_MESA_device_software #0 19:00:54: Trying to init device: EGL_MESA_device_software #0... 19:00:54: Created GL 3.3 context for device EGL_MESA_device_software #0 19:00:54: Destroying device: EGL_MESA_device_software #0... 19:00:54: Plugin successfully installed 19:00:54: Loading library /usr/lib/x86_64-linux-gnu/OGRE-2.2/OGRE/Plugin_ParticleFX.so 19:00:54: Installing plugin: ParticleFX 19:00:54: Particle Emitter Type 'Point' registered 19:00:54: Particle Emitter Type 'Box' registered 19:00:54: Particle Emitter Type 'Ellipsoid' registered 19:00:54: Particle Emitter Type 'Cylinder' registered 19:00:54: Particle Emitter Type 'Ring' registered 19:00:54: Particle Emitter Type 'HollowEllipsoid' registered 19:00:54: Particle Affector Type 'LinearForce' registered 19:00:54: Particle Affector Type 'ColourFader' registered 19:00:54: Particle Affector Type 'ColourFader2' registered 19:00:54: Particle Affector Type 'ColourImage' registered 19:00:54: Particle Affector Type 'ColourInterpolator' registered 19:00:54: Particle Affector Type 'Scaler' registered 19:00:54: Particle Affector Type 'Rotator' registered 19:00:54: Particle Affector Type 'DirectionRandomiser' registered 19:00:54: Particle Affector Type 'DeflectorPlane' registered 19:00:54: Plugin successfully installed 19:00:54: CPU Identifier & Features 19:00:54: ------------------------- 19:00:54: * CPU ID: AuthenticAMD: AMD Ryzen 7 3700X 8-Core Processor 19:00:54: * Logical cores: 8 19:00:54: * SSE: yes 19:00:54: * SSE2: yes 19:00:54: * SSE3: yes 19:00:54: * MMX: yes 19:00:54: * MMXEXT: yes 19:00:54: * 3DNOW: no 19:00:54: * 3DNOWEXT: no 19:00:54: * CMOV: yes 19:00:54: * TSC: yes 19:00:54: * FPU: yes 19:00:54: * PRO: yes 19:00:54: * HT: no 19:00:54: ------------------------- 19:00:54: ****************************** *** Starting GLX Subsystem *** ****************************** 19:00:54: GL3PlusRenderSystem::_createRenderWindow "OgreWindow(0)_0", 1x1 windowed miscParams: FSAA=0 border=none contentScalingFactor=1.000000 currentGLContext=true externalGLControl=true gamma=Yes parentWindowHandle=4194317 stereoMode=Frame Sequential 19:00:54: GLXWindow::create used FBConfigID = 376 19:00:54: GL Version = 3.3.0.0 19:00:54: GL_VERSION = 3.3 (Compatibility Profile) Mesa 21.0.3 19:00:54: GL_VENDOR = Microsoft Corporation 19:00:54: GL_RENDERER = D3D12 (NVIDIA GeForce RTX 2080 SUPER) 19:00:54: GL_EXTENSIONS = 19:00:54: GL_AMD_conservative_depth 19:00:54: GL_AMD_draw_buffers_blend 19:00:54: GL_AMD_shader_trinary_minmax 19:00:54: GL_ANGLE_texture_compression_dxt3 19:00:54: GL_ANGLE_texture_compression_dxt5 19:00:54: GL_APPLE_packed_pixels 19:00:54: GL_ARB_ES2_compatibility 19:00:54: GL_ARB_ES3_compatibility 19:00:54: GL_ARB_arrays_of_arrays 19:00:54: GL_ARB_blend_func_extended 19:00:54: GL_ARB_clear_buffer_object 19:00:54: GL_ARB_color_buffer_float 19:00:54: GL_ARB_compatibility 19:00:54: GL_ARB_compressed_texture_pixel_storage 19:00:54: GL_ARB_conservative_depth 19:00:54: GL_ARB_copy_buffer 19:00:54: GL_ARB_debug_output 19:00:54: GL_ARB_depth_buffer_float 19:00:54: GL_ARB_depth_clamp 19:00:54: GL_ARB_depth_texture 19:00:54: GL_ARB_direct_state_access 19:00:54: GL_ARB_draw_buffers 19:00:54: GL_ARB_draw_buffers_blend 19:00:54: GL_ARB_draw_elements_base_vertex 19:00:54: GL_ARB_draw_instanced 19:00:54: GL_ARB_explicit_attrib_location 19:00:54: GL_ARB_explicit_uniform_location 19:00:54: GL_ARB_fragment_coord_conventions 19:00:54: GL_ARB_fragment_program 19:00:54: GL_ARB_fragment_program_shadow 19:00:54: GL_ARB_fragment_shader 19:00:54: GL_ARB_framebuffer_object 19:00:54: GL_ARB_framebuffer_sRGB 19:00:54: GL_ARB_get_program_binary 19:00:54: GL_ARB_get_texture_sub_image 19:00:54: GL_ARB_half_float_pixel 19:00:54: GL_ARB_half_float_vertex 19:00:54: GL_ARB_instanced_arrays 19:00:54: GL_ARB_internalformat_query 19:00:54: GL_ARB_internalformat_query2 19:00:54: GL_ARB_invalidate_subdata 19:00:54: GL_ARB_map_buffer_alignment 19:00:54: GL_ARB_map_buffer_range 19:00:54: GL_ARB_multi_bind 19:00:54: GL_ARB_multisample 19:00:54: GL_ARB_multitexture 19:00:54: GL_ARB_occlusion_query 19:00:54: GL_ARB_occlusion_query2 19:00:54: GL_ARB_parallel_shader_compile 19:00:54: GL_ARB_pixel_buffer_object 19:00:54: GL_ARB_point_parameters 19:00:54: GL_ARB_point_sprite 19:00:54: GL_ARB_program_interface_query 19:00:54: GL_ARB_provoking_vertex 19:00:54: GL_ARB_robustness 19:00:54: GL_ARB_sampler_objects 19:00:54: GL_ARB_seamless_cube_map 19:00:54: GL_ARB_separate_shader_objects 19:00:54: GL_ARB_shader_bit_encoding 19:00:54: GL_ARB_shader_objects 19:00:54: GL_ARB_shader_subroutine 19:00:54: GL_ARB_shader_texture_lod 19:00:54: GL_ARB_shading_language_100 19:00:54: GL_ARB_shading_language_420pack 19:00:54: GL_ARB_shading_language_include 19:00:54: GL_ARB_shading_language_packing 19:00:54: GL_ARB_shadow 19:00:54: GL_ARB_stencil_texturing 19:00:54: GL_ARB_sync 19:00:54: GL_ARB_texture_border_clamp 19:00:54: GL_ARB_texture_buffer_object 19:00:54: GL_ARB_texture_buffer_object_rgb32 19:00:54: GL_ARB_texture_buffer_range 19:00:54: GL_ARB_texture_compression 19:00:54: GL_ARB_texture_compression_rgtc 19:00:54: GL_ARB_texture_cube_map 19:00:54: GL_ARB_texture_env_add 19:00:54: GL_ARB_texture_env_combine 19:00:54: GL_ARB_texture_env_crossbar 19:00:54: GL_ARB_texture_env_dot3 19:00:54: GL_ARB_texture_filter_anisotropic 19:00:54: GL_ARB_texture_float 19:00:54: GL_ARB_texture_mirrored_repeat 19:00:54: GL_ARB_texture_multisample 19:00:54: GL_ARB_texture_non_power_of_two 19:00:54: GL_ARB_texture_query_levels 19:00:54: GL_ARB_texture_query_lod 19:00:54: GL_ARB_texture_rectangle 19:00:54: GL_ARB_texture_rg 19:00:54: GL_ARB_texture_rgb10_a2ui 19:00:54: GL_ARB_texture_stencil8 19:00:54: GL_ARB_texture_storage 19:00:54: GL_ARB_texture_storage_multisample 19:00:54: GL_ARB_texture_swizzle 19:00:54: GL_ARB_timer_query 19:00:54: GL_ARB_transpose_matrix 19:00:54: GL_ARB_uniform_buffer_object 19:00:54: GL_ARB_vertex_array_bgra 19:00:54: GL_ARB_vertex_array_object 19:00:54: GL_ARB_vertex_attrib_binding 19:00:54: GL_ARB_vertex_buffer_object 19:00:54: GL_ARB_vertex_program 19:00:54: GL_ARB_vertex_shader 19:00:54: GL_ARB_vertex_type_10f_11f_11f_rev 19:00:54: GL_ARB_vertex_type_2_10_10_10_rev 19:00:54: GL_ARB_window_pos 19:00:54: GL_ATI_blend_equation_separate 19:00:54: GL_ATI_draw_buffers 19:00:54: GL_ATI_fragment_shader 19:00:54: GL_ATI_separate_stencil 19:00:54: GL_ATI_texture_env_combine3 19:00:54: GL_ATI_texture_float 19:00:54: GL_EXT_EGL_image_storage 19:00:54: GL_EXT_EGL_sync 19:00:54: GL_EXT_abgr 19:00:54: GL_EXT_bgra 19:00:54: GL_EXT_blend_color 19:00:54: GL_EXT_blend_equation_separate 19:00:54: GL_EXT_blend_func_separate 19:00:54: GL_EXT_blend_minmax 19:00:54: GL_EXT_blend_subtract 19:00:54: GL_EXT_compiled_vertex_array 19:00:54: GL_EXT_copy_texture 19:00:54: GL_EXT_direct_state_access 19:00:54: GL_EXT_draw_buffers2 19:00:54: GL_EXT_draw_instanced 19:00:54: GL_EXT_draw_range_elements 19:00:54: GL_EXT_fog_coord 19:00:54: GL_EXT_framebuffer_blit 19:00:54: GL_EXT_framebuffer_multisample 19:00:54: GL_EXT_framebuffer_multisample_blit_scaled 19:00:54: GL_EXT_framebuffer_object 19:00:54: GL_EXT_framebuffer_sRGB 19:00:54: GL_EXT_gpu_program_parameters 19:00:54: GL_EXT_gpu_shader4 19:00:54: GL_EXT_multi_draw_arrays 19:00:54: GL_EXT_packed_depth_stencil 19:00:54: GL_EXT_packed_float 19:00:54: GL_EXT_packed_pixels 19:00:54: GL_EXT_pixel_buffer_object 19:00:54: GL_EXT_point_parameters 19:00:54: GL_EXT_provoking_vertex 19:00:54: GL_EXT_rescale_normal 19:00:54: GL_EXT_secondary_color 19:00:54: GL_EXT_separate_specular_color 19:00:54: GL_EXT_shader_integer_mix 19:00:54: GL_EXT_shadow_funcs 19:00:54: GL_EXT_stencil_two_side 19:00:54: GL_EXT_stencil_wrap 19:00:54: GL_EXT_subtexture 19:00:54: GL_EXT_texture 19:00:54: GL_EXT_texture3D 19:00:54: GL_EXT_texture_array 19:00:54: GL_EXT_texture_buffer_object 19:00:54: GL_EXT_texture_compression_dxt1 19:00:54: GL_EXT_texture_compression_rgtc 19:00:54: GL_EXT_texture_compression_s3tc 19:00:54: GL_EXT_texture_cube_map 19:00:54: GL_EXT_texture_edge_clamp 19:00:54: GL_EXT_texture_env_add 19:00:54: GL_EXT_texture_env_combine 19:00:54: GL_EXT_texture_env_dot3 19:00:54: GL_EXT_texture_filter_anisotropic 19:00:54: GL_EXT_texture_integer 19:00:54: GL_EXT_texture_lod_bias 19:00:54: GL_EXT_texture_object 19:00:54: GL_EXT_texture_rectangle 19:00:54: GL_EXT_texture_sRGB 19:00:54: GL_EXT_texture_sRGB_decode 19:00:54: GL_EXT_texture_shared_exponent 19:00:54: GL_EXT_texture_snorm 19:00:54: GL_EXT_texture_swizzle 19:00:54: GL_EXT_timer_query 19:00:54: GL_EXT_transform_feedback 19:00:54: GL_EXT_vertex_array 19:00:54: GL_EXT_vertex_array_bgra 19:00:54: GL_IBM_multimode_draw_arrays 19:00:54: GL_IBM_rasterpos_clip 19:00:54: GL_IBM_texture_mirrored_repeat 19:00:54: GL_INGR_blend_func_separate 19:00:54: GL_KHR_context_flush_control 19:00:54: GL_KHR_debug 19:00:54: GL_KHR_no_error 19:00:54: GL_KHR_parallel_shader_compile 19:00:54: GL_KHR_texture_compression_astc_ldr 19:00:54: GL_KHR_texture_compression_astc_sliced_3d 19:00:54: GL_MESA_pack_invert 19:00:54: GL_MESA_shader_integer_functions 19:00:54: GL_MESA_texture_signed_rgba 19:00:54: GL_MESA_window_pos 19:00:54: GL_NV_blend_square 19:00:54: GL_NV_conditional_render 19:00:54: GL_NV_copy_depth_to_color 19:00:54: GL_NV_copy_image 19:00:54: GL_NV_depth_clamp 19:00:54: GL_NV_fog_distance 19:00:54: GL_NV_half_float 19:00:54: GL_NV_light_max_exponent 19:00:54: GL_NV_packed_depth_stencil 19:00:54: GL_NV_primitive_restart 19:00:54: GL_NV_texgen_reflection 19:00:54: GL_NV_texture_env_combine4 19:00:54: GL_NV_texture_rectangle 19:00:54: GL_OES_EGL_image 19:00:54: GL_OES_read_format 19:00:54: GL_S3_s3tc 19:00:54: GL_SGIS_generate_mipmap 19:00:54: GL_SGIS_texture_border_clamp 19:00:54: GL_SGIS_texture_edge_clamp 19:00:54: GL_SGIS_texture_lod 19:00:54: GL_SUN_multi_draw_arrays 19:00:54: ************************************** 19:00:54: *** OpenGL 3+ Renderer Started *** 19:00:54: ************************************** 19:00:54: Registering ResourceManager for type GpuProgram 19:00:54: RenderSystem capabilities 19:00:54: ------------------------- 19:00:54: RenderSystem Name: OpenGL 3+ Rendering Subsystem 19:00:54: GPU Vendor: microsoft 19:00:54: Device Name: D3D12 (NVIDIA GeForce RTX 2080 SUPER) 19:00:54: Driver Version: 3.3.0.0 19:00:54: * Fixed function pipeline: no 19:00:54: * Hardware generation of mipmaps: yes 19:00:54: * Texture blending: yes 19:00:54: * Anisotropic texture filtering: yes 19:00:54: * Dot product texture operation: yes 19:00:54: * Cube mapping: yes 19:00:54: * Hardware stencil buffer: yes 19:00:54: - Stencil depth: 8 19:00:54: - Two sided stencil support: yes 19:00:54: - Wrap stencil values: yes 19:00:54: * Hardware vertex / index buffers: yes 19:00:54: * 32-bit index buffers: yes 19:00:54: * Vertex programs: yes 19:00:54: * Number of floating-point constants for vertex programs: 16384 19:00:54: * Number of integer constants for vertex programs: 16384 19:00:54: * Number of boolean constants for vertex programs: 16384 19:00:54: * Fragment programs: yes 19:00:54: * Number of floating-point constants for fragment programs: 16384 19:00:54: * Number of integer constants for fragment programs: 16384 19:00:54: * Number of boolean constants for fragment programs: 16384 19:00:54: * Geometry programs: yes 19:00:54: * Number of floating-point constants for geometry programs: 16384 19:00:54: * Number of integer constants for geometry programs: 16384 19:00:54: * Number of boolean constants for geometry programs: 16384 19:00:54: * Tessellation Hull programs: no 19:00:54: * Number of floating-point constants for tessellation hull programs: 0 19:00:54: * Number of integer constants for tessellation hull programs: 0 19:00:54: * Number of boolean constants for tessellation hull programs: 0 19:00:54: * Tessellation Domain programs: no 19:00:54: * Number of floating-point constants for tessellation domain programs: 0 19:00:54: * Number of integer constants for tessellation domain programs: 0 19:00:54: * Number of boolean constants for tessellation domain programs: 0 19:00:54: * Compute programs: no 19:00:54: * Number of floating-point constants for compute programs: 0 19:00:54: * Number of integer constants for compute programs: 0 19:00:54: * Number of boolean constants for compute programs: 0 19:00:54: * Supported Shader Profiles: glsl glsl130 glsl140 glsl150 glsl330 19:00:54: * Texture Compression: yes 19:00:54: - DXT: yes 19:00:54: - VTC: no 19:00:54: - PVRTC: no 19:00:54: - ATC: no 19:00:54: - ETC1: no 19:00:54: - ETC2: yes 19:00:54: - BC4/BC5: yes 19:00:54: - BC6H/BC7: no 19:00:54: - ASTC: yes 19:00:54: * Hardware Occlusion Query: yes 19:00:54: * User clip planes: yes 19:00:54: * VET_UBYTE4 vertex element type: yes 19:00:54: * Infinite far plane projection: yes 19:00:54: * Hardware render-to-texture: yes 19:00:54: * Floating point textures: yes 19:00:54: * Non-power-of-two textures: yes 19:00:54: * 1d textures: yes 19:00:54: * Volume textures: yes 19:00:54: * Max Texture resolution (2D) 16384 19:00:54: * Max Texture resolution (3D) 1024 19:00:54: * Max Texture resolution (Cubemaps) 8192 19:00:54: * Multiple Render Targets: 8 19:00:54: - With different bit depths: yes 19:00:54: * Point Sprites: yes 19:00:54: * Extended point parameters: yes 19:00:54: * Max Point Size: 255 19:00:54: * Vertex texture fetch: yes 19:00:54: * Number of world matrices: 0 19:00:54: * Number of texture units: 16 19:00:54: * Stencil buffer depth: 8 19:00:54: * Number of vertex blend matrices: 0 19:00:54: - Max vertex textures: 32 19:00:54: - Vertex textures shared: yes 19:00:54: * Render to Vertex Buffer : yes 19:00:54: * Hardware Atomic Counters: no 19:00:54: * GL 1.5 without VBO workaround: no 19:00:54: * Frame Buffer objects: yes 19:00:54: * Frame Buffer objects (ARB extension): no 19:00:54: * Frame Buffer objects (ATI extension): no 19:00:54: * PBuffer support: no 19:00:54: * GL 1.5 without HW-occlusion workaround: no 19:00:54: * Vertex Array Objects: yes 19:00:54: * Separate shader objects: no 19:00:54: * Using Reverse Z: yes 19:00:54: DefaultWorkQueue('Root') initialising on thread main. 19:00:54: Particle Renderer Type 'billboard' registered 19:00:54: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/2.0/scripts/Compositors' of type 'FileSystem' to resource group 'General' 19:00:54: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/2.0/scripts/materials/Common' of type 'FileSystem' to resource group 'General' 19:00:54: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/2.0/scripts/materials/Common/GLSL' of type 'FileSystem' to resource group 'General' 19:00:54: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/2.0/scripts/materials/Common/GLSLES' of type 'FileSystem' to resource group 'General' 19:00:54: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/2.0/scripts/materials/Terra' of type 'FileSystem' to resource group 'General' 19:00:54: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/2.0/scripts/materials/Terra/GLSL' of type 'FileSystem' to resource group 'General' 19:00:54: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media' of type 'FileSystem' to resource group 'General' 19:00:54: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/materials/programs' of type 'FileSystem' to resource group 'General' 19:00:54: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/materials/scripts' of type 'FileSystem' to resource group 'General' 19:00:54: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/materials/textures' of type 'FileSystem' to resource group 'General' 19:00:54: Parsing scripts for resource group Autodetect 19:00:54: Finished parsing scripts for resource group Autodetect 19:00:54: Creating resources for group Autodetect 19:00:54: All done 19:00:54: Parsing scripts for resource group General 19:00:54: Parsing script Quad.program 19:00:54: Parsing script DepthUtils.material 19:00:54: Parsing script Copyback.material 19:00:54: Parsing script EsmGaussianBlurLogFilter.material 19:00:54: Parsing script DPSM.material 19:00:54: Parsing script GpuNormalMapper.material 19:00:54: Parsing script gaussian_noise.material 19:00:54: Parsing script selection_buffer.material 19:00:54: Compiler error: reference to a non existing object in selection_buffer.material(37) 19:00:54: Parsing script skybox.material 19:00:54: Parsing script thermal.material 19:00:54: Parsing script picker.material 19:00:54: Parsing script depth_camera.material 19:00:54: Parsing script gpu_rays.material 19:00:54: Parsing script point_cloud_point.material 19:00:54: Compiler error: invalid parameters in point_cloud_point.material(34): incorrect type specified; only variants of int, uint, float, double, and bool allowed 19:00:54: Parsing script TerraShadowGenerator.compositor 19:00:54: Parsing script GpuNormalMapper.compositor 19:00:54: Parsing script EsmGaussianBlurLogFilter.material.json 19:00:54: Parsing script Mipmaps.material.json 19:00:54: Parsing script TerraShadowGenerator.material.json 19:00:54: Finished parsing scripts for resource group General 19:00:54: Creating resources for group General 19:00:54: All done 19:00:54: Parsing scripts for resource group Internal 19:00:54: Finished parsing scripts for resource group Internal 19:00:54: Creating resources for group Internal 19:00:54: All done 19:00:54: Added resource location '/usr/share/ignition/ignition-rendering6/media/materials/textures/' of type 'FileSystem' to resource group 'General' 19:00:54: Can't assign material scene::Material(65503) because this Material does not exist. Have you forgotten to define it in a .material script? 19:00:54: Can't assign material scene::Material(65497) because this Material does not exist. Have you forgotten to define it in a .material script? 19:00:54: Can't assign material scene::Material(65491) because this Material does not exist. Have you forgotten to define it in a .material script? 19:00:54: Can't assign material scene::Material(65485) because this Material does not exist. Have you forgotten to define it in a .material script? 19:00:54: Can't assign material scene::Material(65478) because this Material does not exist. Have you forgotten to define it in a .material script? 19:00:54: Can't assign material scene::Material(65485) because this Material does not exist. Have you forgotten to define it in a .material script? 19:00:54: Can't assign material scene::Material(65466) because this Material does not exist. Have you forgotten to define it in a .material script? 19:00:54: Vertex Shader: 100000001VertexShader_vs Fragment Shader: 100000001PixelShader_ps GLSL validation result : active samplers with a different type refer to the same texture image unit ```
noelex commented 2 years ago

Is there any progress on this? I'm struggling with the same issue here.

Currently adding --render-engine ogre as a temporary workaround.

rubenanapu commented 2 years ago

If you compile from source, disabling anti-aliasing, it works. More details on the links below:

mohseninima commented 2 years ago

Has there been any progress on this? I am stuck using Gazebo 11 since that works fine. Considering all future versions will be based on Ignition-Gazebo, I don't want to have to compile from source each time and disable anti-aliasing to get this working.

traversaro commented 2 years ago

If you compile from source, disabling anti-aliasing, it works. More details on the links below:

* https://answers.gazebosim.org/question/28144/ignition-fortress-shows-a-black-screen-where-the-scene-should-be-with-opengl-45-on-docker-on-aws/

* [When OpenGL ogre2 rendering is happening via mesa's llvmpipe 21 or 22 with Ignition Fortress a black area is displayed instead of the 3D rendering #1116 (comment)](https://github.com/gazebosim/gz-sim/issues/1116#issuecomment-1142388038)

I am not sure that is the case. That workaround works for a problem that occurs with Mesa software rendering, i.e. llvmpipe, this issue is about the problem related to running ign gazebo under the d3d12 driver, i.e. the one that maps OpenGL calls to Direct3D 12 calls.

According to my tests, when using d3d12 with a recent mesa version (22.0.6, the one available in Ubuntu 22.04), ign gazebo crashes with:

straversaro@IITICUBLAP257:~$ ign gazebo shapes.sdf
terminate called after throwing an instance of 'Ogre::UnimplementedException'
  what():  OGRE EXCEPTION(9:UnimplementedException):  in GL3PlusTextureGpu::copyTo at /build/ogre-next-UFfg83/ogre-next-2.2.5+dfsg3/RenderSystems/GL3Plus/src/OgreGL3PlusTextureGpu.cpp (line 677)
Stack trace (most recent call last) in thread 3740:
#10   Object "[0xffffffffffffffff]", at 0xffffffffffffffff, in
#9    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7f5543e699ff, in
#8    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7f5543dd7b42, in
#7    Object "/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x7f553e22399d, in
#6    Object "/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x7f553e221f90, in qTerminate()
#5    Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7f553fe642f6, in std::terminate()
#4    Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7f553fe6428b, in
#3    Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7f553fe58bfd, in
#2    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7f5543d6b7f2, in abort
#1    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7f5543d85475, in raise
#0    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7f5543dd9a7c, in pthread_kill
Aborted (Signal sent by tkill() 3665 1000)

Basically, the problem is that d3d12 does not support OpenGL 4.3 or at least the extension GL_ARB_copy_image, see https://github.com/OGRECave/ogre-next/blob/v2.2.5/RenderSystems/GL3Plus/src/OgreGL3PlusTextureGpu.cpp#L634 . I do not think you can workaround that by changing antialiasing settings. One solution is just wait for d3d12 to implement OpenGL 4.3 , that it is in the work (see https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14881 that is the PR that implemented OpenGL 4.2, where the author mentions "This will be the last version bump for a while. Reaching 4.3 requires new D3D12 features (which are in development)."). A possible alternative may be to provide CPU fallbacks for the OpenGL 4.3 functions used in ogre-next (such as GL_ARB_copy_image), but I do not know how feasible this is.

darksylinc commented 2 years ago

GL_ARB_copy_image is a very old extension (introduced in 2012).

Someone may want to contact the maintainer of the d3d12 driver to implement GL_ARB_copy_image. It shouldn't be hard for the d3d12 driver (it's literally a GPU-side memcpy).

The maintainer is probably referring to the difficulty other GL 4.3 features that have nothing to do with GL_ARB_copy_image that are gatekeeping this feature.

traversaro commented 2 years ago

GL_ARB_copy_image is a very old extension (introduced in 2012).

Someone may want to contact the maintainer of the d3d12 driver to implement GL_ARB_copy_image. It shouldn't be hard for the d3d12 driver (it's literally a GPU-side memcpy).

The maintainer is probably referring to the difficulty other GL 4.3 features that have nothing to do with GL_ARB_copy_image that are gatekeeping this feature.

I checked on https://mesamatrix.net/, and as of today apparently GL_ARB_copy_image and GL_ARB_texture_view are the only two extensions missing of OpenGL 4.3 on d3d12: GL_ARB_COPY_IMAGE

traversaro commented 1 year ago

Since https://github.com/gazebosim/gz-sim/issues/1116 was fixed and landed in a release, a workaround for this issue is to set the env variable LIBGL_ALWAYS_SOFTWARE=1 . This would use the CPU rendering instead of the GPU one (resulting in more CPU use), but at least should start fine.

traversaro commented 1 year ago

Interestingly @bperseghetti noted that at least on mesa 22/23 d3d12 does not list compatibility with GL_ARB_copy_image extension, but it list compatibility with GL_NV_copy_image:

traversaro@IITICUBLAP257:~$ glxinfo | grep copy_image
    GL_NV_conditional_render, GL_NV_copy_image, GL_NV_depth_clamp,
    GL_NV_copy_depth_to_color, GL_NV_copy_image, GL_NV_depth_clamp,

So, a possible thing to check is to use the function defined by the GL_NV_copy_image extension if GL_ARB_copy_image is not supported. Indeed, by checking the ogre-next source code it seems that some code to try to support a GL_NV_copy_image is already there, but commented, see https://github.com/OGRECave/ogre-next/blob/v2.3.1/RenderSystems/GL3Plus/src/OgreGL3PlusTextureGpu.cpp#L653-L660 .

The code was already committed commented back when that code was introduced, see https://github.com/OGRECave/ogre-next/commit/22dc290dcae1692a8577ced093c46fb7e4a66ffa . However, it is probably relatively easy to fix the commented code by copying the arguments passed to glCopyImageSubData in the latest version of the code, and check if it works.

Another interesting question (that perhaps it is more appropriate for the mesa issue tracker) is: if GL_NV_copy_image is implemented for d3d12, probably it should be possible to easily support GL_ARB_copy_image as well?

bperseghetti commented 1 year ago

Interestingly @bperseghetti noted that at least on mesa 22/23 d3d12 does not list compatibility with GL_ARB_copy_image extension, but it list compatibility with GL_NV_copy_image:

traversaro@IITICUBLAP257:~$ glxinfo | grep copy_image
    GL_NV_conditional_render, GL_NV_copy_image, GL_NV_depth_clamp,
    GL_NV_copy_depth_to_color, GL_NV_copy_image, GL_NV_depth_clamp,

So, a possible thing to check is to use the function defined by the GL_NV_copy_image extension if GL_ARB_copy_image is not supported. Indeed, by checking the ogre-next source code it seems that some code to try to support a GL_NV_copy_image is already there, but commented, see https://github.com/OGRECave/ogre-next/blob/v2.3.1/RenderSystems/GL3Plus/src/OgreGL3PlusTextureGpu.cpp#L653-L660 .

The code was already committed commented back when that code was introduced, see OGRECave/ogre-next@22dc290 . However, it is probably relatively easy to fix the commented code by copying the arguments passed to glCopyImageSubData in the latest version of the code, and check if it works.

Another interesting question (that perhaps it is more appropriate for the mesa issue tracker) is: if GL_NV_copy_image is implemented for d3d12, probably it should be possible to easily support GL_ARB_copy_image as well?

Found it out from @PetervdPerk-NXP who is using our simulation on WSL.

darksylinc commented 1 year ago

Hi!

Enabling that path in OgreNext should be easy and straightforward. It seems the commented out code is now out of date, so it probably should have the same function signature as its GL_ARB_copy_image counterpart.

It would need testing though.

Another interesting question (that perhaps it is more appropriate for the mesa issue tracker) is: if GL_NV_copy_image is implemented for d3d12

A quick eye glance over the specs suggest GL_ARB_copy_image handles compressed format reinterpretation* while GL_NV_copy_image does not. This is a very advanced use case and shouldn't be a problem for Gazebo, I'm just pointing out that might be the reason GL_ARB_copy_image support isn't exposed while NV is.

* Compressed format reinterpretation is when e.g. BC1_UNORM is copied to a RGBA16_UINT texture for raw binary access. This is mostly relevant for Compute Shader encoders/decoders.

traversaro commented 1 year ago

Thanks @darksylinc for the answer!

traversaro commented 1 year ago

Even after patching ogre-next to use GL_NV_copy_image (see https://github.com/conda-forge/ogre-next-feedstock/blob/4fee59f304adfd6d1e3074fb11a028fe80bcfbde/recipe/wslg_support.patch, it took some time to understand how gl3w worked for extensions), I tried gz sim and now when used with d3d12 it fails with another error (I am no sure how related or not):

terminate called after throwing an instance of 'Ogre::RenderingAPIException'
  what():  OGRE EXCEPTION(3:RenderingAPIException): Vertex Program 100000000VertexShader_vs failed to compile. See compile log above for details. in GLSLShader::compile at /home/conda/feedstock_root/build_artifacts/ogre-next_1679090885365/work/RenderSystems/GL3Plus/src/GLSL/OgreGLSLShader.cpp (line 361)
Stack trace (most recent call last) in thread 2006:

In ogre2.log the error is similar:

23:40:44: GLSL compile log: 100000000VertexShader_vs
0:390(29): error: syntax error, unexpected NEW_IDENTIFIER
23:40:44: OGRE EXCEPTION(3:RenderingAPIException): Vertex Program 100000000VertexShader_vs failed to compile. See compile log above for details. in GLSLShader::compile at /home/conda/feedstock_root/build_artifacts/ogre-next_1679090885365/work/RenderSystems/GL3Plus/src/GLSL/OgreGLSLShader.cpp (line 361
darksylinc commented 1 year ago

Hi!

It's complaining about an unrelated shader compilation error (unrelated to GL_NV_copy_image I mean).

To debug this problem you'll have to go to: https://github.com/gazebosim/gz-rendering/blob/c2e72ee51a7e4dba5156faa96c972c63ca5ab437/ogre2/src/Ogre2RenderEngine.cc#L849

and change that line into:

hlmsUnlit->setDebugOutputPath(true, true, "/tmp/path/to/dump");

Then do the same for hlmsPbs and hlmsTerra.

In the folder you'll find the generated shaders and upload them here for further analysis.

PS: Slightly unrelated question: Does Vulkan work on WSLg?

traversaro commented 1 year ago

Hi!

It's complaining about an unrelated shader compilation error (unrelated to GL_NV_copy_image I mean).

To debug this problem you'll have to go to: https://github.com/gazebosim/gz-rendering/blob/c2e72ee51a7e4dba5156faa96c972c63ca5ab437/ogre2/src/Ogre2RenderEngine.cc#L849

and change that line into:

hlmsUnlit->setDebugOutputPath(true, true, "/tmp/path/to/dump");

Then do the same for hlmsPbs and hlmsTerra.

In the folder you'll find the generated shaders and upload them here for further analysis.

Thanks! Thanks a lot for the hints.

PS: Slightly unrelated question: Does Vulkan work on WSLg?

As for opengl, there is the software implementation (lavapipe/lvp, equivalent of llvmpipe) and the the one that actually implements vulkan on top of DirectX12 (dozen/dzn, equivalent of d3d12). However, dozen is still a work in progress, and I never tested it with ogre-next.

kryptoniancode commented 1 year ago

In docker wsl2,

No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
[ign gazebo-1]
[ign gazebo-1] libEGL warning: NEEDS EXTENSION: falling back to kms_swrast
[INFO] [ros2-8]: process has finished cleanly [pid 209]
[INFO] [ros2-9]: process started with pid [256]
[ign gazebo-1] terminate called after throwing an instance of 'Ogre::UnimplementedException'
[ign gazebo-1]   what():  OGRE EXCEPTION(9:UnimplementedException):  in GL3PlusTextureGpu::copyTo at /build/ogre-next-UFfg83/ogre-next-2.2.5+dfsg3/RenderSystems/GL3Plus/src/OgreGL3PlusTextureGpu.cpp (line 677)
[ign gazebo-1] Stack trace (most recent call last) in thread 243:
[ign gazebo-1] #10   Object "[0xffffffffffffffff]", at 0xffffffffffffffff, in
[ign gazebo-1] #9    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7f2c465ce9ff, in
[ign gazebo-1] #8    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7f2c4653cb42, in
[ign gazebo-1] #7    Object "/usr/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x7f2c40ba299d, in
[ign gazebo-1] #6    Object "/usr/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x7f2c40ba0f90, in qTerminate()
[ign gazebo-1] #5    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7f2c427fc2b6, in std::terminate()
[ign gazebo-1] #4    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7f2c427fc24b, in
[ign gazebo-1] #3    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7f2c427f0bbd, in
[ign gazebo-1] #2    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7f2c464d07f2, in abort
[ign gazebo-1] #1    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7f2c464ea475, in raise
[ign gazebo-1] #0    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7f2c4653ea7c, in pthread_kill
[ign gazebo-1] Aborted (Signal sent by tkill() 149 0)

After using this it works.

docker .... LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu/libstdc++.so.6"

But don't know how to use it in wsl2 not in docker.

traversaro commented 1 year ago

After using this it works.

Are you sure that it is using the GPU in this case? I do not understand how the d3d12 mesa driver could start working by just setting LD_LIBRARY_PATH to that location.

bailaC commented 1 year ago

Nothing worked for me. I am using wsl with my windows 11 host.

traversaro commented 1 year ago

Nothing worked for me. I am using wsl with my windows 11 host.

Just to clarify, at least setting export LIBGL_ALWAYS_SOFTWARE=true works, even if slow as no GPU is used? Otherwise there could be some strange problem in your setup.

kryptoniancode commented 1 year ago

After using this it works.

Are you sure that it is using the GPU in this case? I do not understand how the d3d12 mesa driver could start working by just setting LD_LIBRARY_PATH to that location.

No, it is not using in docker(inside wsl2) but gpu is get used in WSL2, I have installed nvidia driver in WSL2 and then install following in docker images.

sudo add-apt-repository ppa:kisak/kisak-mesa
sudo apt update
sudo apt upgrade
sudo apt install mesa-utils

Finally used this docker command.

docker run --rm -it --device /dev/dxg \
-e LD_LIBRARY_PATH="/usr/lib/wsl/lib  /usr/lib/x86_64-linux-gnu/libstdc++.so.6" \
--name ubuntu_22.04 \
--network host --gpus all \
--privileged \
-v /mnt/wslg:/mnt/wslg -v /usr/lib/wsl:/usr/lib/wsl \
-v $HOME/demos_ws:/home/spaceros-user/demos_ws2 \
-e DISPLAY=$DISPLAY \
-e WAYLAND_DISPLAY=$WAYLAND_DISPLAY \
-e XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR \
-e TERM=$TERM \
-e QT_X11_NO_MITSHM=1 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /etc/localtime:/etc/localtime:ro <docker id>
bailaC commented 1 year ago

Well, when I set the env variable, I get one black screen and below error.

root@baila:~# export LIBGL_ALWAYS_SOFTWARE=1 root@baila:~# gz sim shapes.sdf QStandardPaths: runtime directory '/run/user/0/' is not owned by UID 0, but a directory permissions 0700 owned by UID 1000 GID 1000 libEGL warning: Not allowed to force software rendering when API explicitly selects a hardware device. libEGL warning: MESA-LOADER: failed to open vgem: /usr/lib/dri/vgem_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)

When it is not set, the gui comes and close with the below crash message,

root@baila:~# export LIBGL_ALWAYS_SOFTWARE=0 root@baila:~# gz sim shapes.sdf QStandardPaths: runtime directory '/run/user/0/' is not owned by UID 0, but a directory permissions 0700 owned by UID 1000 GID 1000 libEGL warning: MESA-LOADER: failed to open vgem: /usr/lib/dri/vgem_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)

libEGL warning: NEEDS EXTENSION: falling back to kms_swrast terminate called after throwing an instance of 'Ogre::UnimplementedException' what(): OGRE EXCEPTION(9:UnimplementedException): in GL3PlusTextureGpu::copyTo at ./RenderSystems/GL3Plus/src/OgreGL3PlusTextureGpu.cpp (line 685) Stack trace (most recent call last):

31 Object "/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x7fe27cc6b75a, in QEventLoop::exec(QFlags)

30 Object "/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x7fe27ccc60b7, in QEventDispatcherGlib::processEvents(QFlags)

29 Object "/lib/x86_64-linux-gnu/libglib-2.0.so.0", at 0x7fe27a8423e2, in g_main_context_iteration

28 Object "/lib/x86_64-linux-gnu/libglib-2.0.so.0", at 0x7fe27a8996c7, in

27 Object "/lib/x86_64-linux-gnu/libglib-2.0.so.0", at 0x7fe27a844d3a, in g_main_context_dispatch

26 Object "/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x7fe27ccc6a66, in

25 Object "/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x7fe27cc6ff26, in QCoreApplicationPrivate::sendPostedEvents(QObject, int, QThreadData)

24 Object "/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x7fe27cc6ce39, in QCoreApplication::notifyInternal2(QObject, QEvent)

23 Object "/lib/x86_64-linux-gnu/libQt5Widgets.so.5", at 0x7fe27c3c4712, in QApplicationPrivate::notify_helper(QObject, QEvent)

22 Object "/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x7fe27cc9a41d, in QObject::event(QEvent*)

21 Object "/usr/lib/x86_64-linux-gnu/gz-gui-7/plugins/libMinimalScene.so", at 0x7fe22611d513, in gz::gui::plugins::RenderWindowItem::Ready()

20 Object "/usr/lib/x86_64-linux-gnu/gz-gui-7/plugins/libMinimalScene.so", at 0x7fe22611d120, in gz::gui::plugins::RenderThread::Initialize[abi:cxx11]()

19 Object "/usr/lib/x86_64-linux-gnu/gz-gui-7/plugins/libMinimalScene.so", at 0x7fe226129c7d, in gz::gui::plugins::RenderThreadRhiOpenGL::Initialize[abi:cxx11]()

18 Object "/usr/lib/x86_64-linux-gnu/gz-gui-7/plugins/libMinimalScene.so", at 0x7fe226120c87, in gz::gui::plugins::GzRenderer::Initialize[abi:cxx11]()

17 Object "/lib/x86_64-linux-gnu/libgz-rendering7.so.7", at 0x7fe224e9a768, in gz::rendering::v7::BaseRenderEngine::CreateScene(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)

16 Object "/lib/x86_64-linux-gnu/libgz-rendering7.so.7", at 0x7fe224ea2cfe, in gz::rendering::v7::BaseRenderEngine::CreateScene(unsigned int, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)

15 Object "/lib/x86_64-linux-gnu/libgz-rendering7.so.7", at 0x7fe224eb423a, in gz::rendering::v7::BaseScene::CreateMaterials()

14 Object "/usr/lib/x86_64-linux-gnu/gz-rendering-7/engine-plugins/libgz-rendering-ogre2.so", at 0x7fe1d20acd1a, in gz::rendering::v7::Ogre2Material::SetTextureMapImpl(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, Ogre::PbsTextureTypes)

13 Object "/usr/lib/x86_64-linux-gnu/OGRE-2.3/libOgreNextMain.so.2.3.1", at 0x7fe1d1d1a224, in Ogre::TextureGpuManager::_waitFor(Ogre::TextureGpu*, bool)

12 Object "/usr/lib/x86_64-linux-gnu/OGRE-2.3/libOgreNextMain.so.2.3.1", at 0x7fe1d1d19e4a, in Ogre::TextureGpuManager::_update(bool)

11 Object "/usr/lib/x86_64-linux-gnu/OGRE-2.3/libOgreNextMain.so.2.3.1", at 0x7fe1d1be755c, in Ogre::ObjCmdBuffer::execute()

10 Object "/usr/lib/x86_64-linux-gnu/OGRE-2.3/libOgreNextMain.so.2.3.1", at 0x7fe1d1be58cd, in Ogre::ObjCmdBuffer::NotifyDataIsReady::execute()

9 Object "/usr/lib/x86_64-linux-gnu/OGRE-2.3/libOgreNextMain.so.2.3.1", at 0x7fe1d1d09d9b, in Ogre::TextureFilter::GenerateHwMipmaps::_executeSerial(Ogre::TextureGpu*)

8 Object "/usr/lib/x86_64-linux-gnu/OGRE-2.3/OGRE/RenderSystem_GL3Plus.so", at 0x7fe1d1687ac3, in

7 Object "/usr/lib/x86_64-linux-gnu/OGRE-2.3/OGRE/RenderSystem_GL3Plus.so", at 0x7fe1d16843da, in

6 Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7fe27e6c4517, in __cxa_throw

5 Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7fe27e6c42b6, in std::terminate()

4 Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7fe27e6c424b, in

3 Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7fe27e6b8bbd, in

2 Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7fe28238b7f2, in abort

1 Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7fe2823a5475, in raise

0 Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7fe2823f9a7c, in pthread_kill

Aborted (Signal sent by tkill() 1753 0)

bailaC commented 1 year ago

@kryptoniancode , so I need to use docker inside wsl to work with gazebo?

bailaC commented 1 year ago

@kryptoniancode , thanks for your help. After executing you suggested cmds and the LIBGL_ALWAYS_SOFTWARE set, the GUI is opened and I can interact with it well. One doubt, how to identify whether it is using CPU or GPU? I want to use my GPU as I have plenty of it.

image

kryptoniancode commented 1 year ago

so I need to use docker inside wsl to work with gazebo?

In some case you have to use following in wsl2. (command needs to check)

gz sim shapes.sdf --render-engine ogre

how to identify whether it is using CPU or GPU?

Use mesa-utils

kryptoniancode commented 1 year ago

Edit. issues fixed - only this required It needs to noted that following options should be set.

1. export LIBGL_ALWAYS_SOFTWARE=1
2. --render-engine ogre

This may not required.

1. export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6
2. sudo chmod 777 /dev/dri/renderD128
traversaro commented 1 year ago

In theory only one of export LIBGL_ALWAYS_SOFTWARE=1 or --render-engine ogre is needed, it should not be necessary to do both. I.e., when using ogre 1 it is possible to use GPU acceleration via d3d12 .

traversaro commented 1 year ago

Hi!

It's complaining about an unrelated shader compilation error (unrelated to GL_NV_copy_image I mean).

To debug this problem you'll have to go to: https://github.com/gazebosim/gz-rendering/blob/c2e72ee51a7e4dba5156faa96c972c63ca5ab437/ogre2/src/Ogre2RenderEngine.cc#L849

and change that line into:

hlmsUnlit->setDebugOutputPath(true, true, "/tmp/path/to/dump");

Then do the same for hlmsPbs and hlmsTerra.

In the folder you'll find the generated shaders and upload them here for further analysis.

I finally tried to do this (sorry but setting up a local environment was not trivial), and after this modification:

diff --git a/ogre2/src/Ogre2RenderEngine.cc b/ogre2/src/Ogre2RenderEngine.cc
index 049781b4..d88dabdb 100644
--- a/ogre2/src/Ogre2RenderEngine.cc
+++ b/ogre2/src/Ogre2RenderEngine.cc
@@ -862,7 +862,7 @@ void Ogre2RenderEngine::RegisterHlms()
     Ogre::Root::getSingleton().getHlmsManager()->registerHlms(hlmsUnlit);

     // disable writting debug output to disk
-    hlmsUnlit->setDebugOutputPath(false, false);
+    hlmsUnlit->setDebugOutputPath(true, true, "/home/traversaro/gz-ws/srctst/ogrelog");
     hlmsUnlit->setListener(hlmsUnlit);

     this->dataPtr->gzHlmsUnlit = hlmsUnlit;
@@ -907,7 +907,7 @@ void Ogre2RenderEngine::RegisterHlms()
     Ogre::Root::getSingleton().getHlmsManager()->registerHlms(hlmsPbs);

     // disable writting debug output to disk
-    hlmsPbs->setDebugOutputPath(false, false);
+    hlmsPbs->setDebugOutputPath(true, true, "/home/traversaro/gz-ws/srctst/ogrelog");
     hlmsPbs->setListener(hlmsPbs);

     dataPtr->gzHlmsPbs = hlmsPbs;
@@ -942,7 +942,7 @@ void Ogre2RenderEngine::RegisterHlms()
     Ogre::Root::getSingleton().getHlmsManager()->registerHlms(hlmsTerra);

     // disable writting debug output to disk
-    hlmsTerra->setDebugOutputPath(false, false);
+    hlmsTerra->setDebugOutputPath(true, true, "/home/traversaro/gz-ws/srctst/ogrelog");
     hlmsTerra->setListener(hlmsTerra);

     this->dataPtr->terraWorkspaceListener.reset(

After the execution I do not find anything in /home/traversaro/gz-ws/srctst/ogrelog, I am not sure if I am doing anything wrong.

Anyhow, by concentrating on the error in ogre2.log :

17:16:12: GLSL compile log: 100000000VertexShader_vs
0:317(29): error: syntax error, unexpected NEW_IDENTIFIER
17:16:12: OGRE EXCEPTION(3:RenderingAPIException): Vertex Program 100000000VertexShader_vs failed to compile. See compile log above for details. in GLSLShader::compile at /home/traversaro/gz-ws/srctst/ogre-next/RenderSystems/GL3Plus/src/GLSL/OgreGLSLShader.cpp (line 361)

I think I understood the error occurs on line https://github.com/gazebosim/gz-rendering/blob/gz-rendering7_7.4.0/ogre2/src/media/Hlms/Pbs/GLSL/VertexShader_vs.glsl#L50, even if I am not able to understand more at the moment unfortunatly.

traversaro commented 1 year ago

After the execution I do not find anything in /home/traversaro/gz-ws/srctst/ogrelog, I am not sure if I am doing anything wrong.

I think I got the problem. For some reason ogre was trying to save the files to /home/traversaro/gz-ws/srctst/ogrelog., by inserting the path as /home/traversaro/gz-ws/srctst/ogrelog/ everything works and I can save the 100000000VertexShader_vs.glsl shader:

Click to see the saved `100000000VertexShader_vs.glsl` ~~~glsl #if 0 *** [Hash 0x01cc1123] 0 *** [Hash 0x0790ba12] 0 *** [Hash 0x08ffb38a] 0 *** [Hash 0x123606a9] 0 *** [Hash 0x1b3509dd] 1 *** [Hash 0x201f84c0] 0 *** [Hash 0x25dc73c6] 635204550 *** [Hash 0x2dd3a2cd] 0 *** [Hash 0x354d66c0] 0 *** [Hash 0x359e8062] 0 *** [Hash 0x378f5735] 1 *** [Hash 0x38942648] 1 *** [Hash 0x3b038020] 0 *** [Hash 0x3fcb60f1] 1070293233 *** [Hash 0x4508a85c] 1 *** [Hash 0x516d43dd] 1 *** [Hash 0x57643473] 0 *** [Hash 0x5ad27ea7] 0 *** [Hash 0x5b0b2416] 0 *** [Hash 0x5cb4719a] 0 *** [Hash 0x61e63948] 1 *** [Hash 0x675280f4] 0 *** [Hash 0x6962e498] 0 *** [Hash 0x6bf5b20f] 1 *** [Hash 0x6dc6cf58] 1841745752 *** [Hash 0x74824502] 1 *** [Hash 0x8421366d] 240 *** [Hash 0x86319b9f] 1 *** [Hash 0x875516cf] 0 *** [Hash 0x8a7512d7] 0 *** [Hash 0x93f2327b] 635204550 *** [Hash 0x962aeb1a] 0 *** [Hash 0x9abd84b5] -1698855755 *** [Hash 0xa1b3cd70] 1 *** [Hash 0xa461daa9] 0 *** [Hash 0xa6ac776b] 0 *** [Hash 0xafaf1bb3] 410 *** [Hash 0xb22f037a] 0 *** [Hash 0xb967bb7b] 1 *** [Hash 0xe4120c6e] 4 *** [Hash 0xe79b3190] 1 *** [Hash 0xe7bd0fde] 0 *** [Hash 0xebcb8569] -338983575 *** [Hash 0xec133132] -334286542 *** [Hash 0xf742ff75] 1 DONE DUMPING PROPERTIES DONE DUMPING PIECES #endif #version 330 core #extension GL_ARB_shading_language_420pack: require #define layout_constbuffer(x) layout( std140, x ) #define bufferFetch texelFetch #define structuredBufferFetch texelFetch #extension GL_AMD_shader_trinary_minmax: require #define float2 vec2 #define float3 vec3 #define float4 vec4 #define int2 ivec2 #define int3 ivec3 #define int4 ivec4 #define uint2 uvec2 #define uint3 uvec3 #define uint4 uvec4 #define float2x2 mat2 #define float3x3 mat3 #define float4x4 mat4 #define ogre_float4x3 mat3x4 #define ushort uint #define ushort3 uint3 #define ushort4 uint4 //Short used for read operations. It's an int in GLSL & HLSL. An ushort in Metal #define rshort int #define rshort2 int2 #define rint int //Short used for write operations. It's an int in GLSL. An ushort in HLSL & Metal #define wshort2 int2 #define wshort3 int3 #define toFloat3x3( x ) mat3( x ) #define buildFloat3x3( row0, row1, row2 ) mat3( row0, row1, row2 ) #define mul( x, y ) ((x) * (y)) #define saturate(x) clamp( (x), 0.0, 1.0 ) #define lerp mix #define rsqrt inversesqrt #define INLINE #define NO_INTERPOLATION_PREFIX flat #define NO_INTERPOLATION_SUFFIX #define PARAMS_ARG_DECL #define PARAMS_ARG #define inVs_vertexId gl_VertexID #define inVs_vertex vertex #define inVs_normal normal #define inVs_tangent tangent #define inVs_binormal binormal #define inVs_blendWeights blendWeights #define inVs_blendIndices blendIndices #define inVs_qtangent qtangent #define inVs_colour colour #define inVs_drawId drawId #define finalDrawId inVs_drawId #define outVs_Position gl_Position #define outVs_viewportIndex gl_ViewportIndex #define outVs_clipDistance0 gl_ClipDistance[0] #define gl_SampleMaskIn0 gl_SampleMaskIn[0] #define reversebits bitfieldReverse #define outPs_colour0 outColour #define OGRE_Sample( tex, sampler, uv ) texture( tex, uv ) #define OGRE_SampleLevel( tex, sampler, uv, lod ) textureLod( tex, uv, lod ) #define OGRE_SampleArray2D( tex, sampler, uv, arrayIdx ) texture( tex, vec3( uv, arrayIdx ) ) #define OGRE_SampleArray2DLevel( tex, sampler, uv, arrayIdx, lod ) textureLod( tex, vec3( uv, arrayIdx ), lod ) #define OGRE_SampleArrayCubeLevel( tex, sampler, uv, arrayIdx, lod ) textureLod( tex, vec4( uv, arrayIdx ), lod ) #define OGRE_SampleGrad( tex, sampler, uv, ddx, ddy ) textureGrad( tex, uv, ddx, ddy ) #define OGRE_SampleArray2DGrad( tex, sampler, uv, arrayIdx, ddx, ddy ) textureGrad( tex, vec3( uv, arrayIdx ), ddx, ddy ) #define texture2D sampler2D #define texture2DArray sampler2DArray #define texture3D sampler3D #define textureCube samplerCube #define textureCubeArray samplerCubeArray #define OGRE_ddx( val ) dFdx( val ) #define OGRE_ddy( val ) dFdy( val ) #define OGRE_Load2D( tex, iuv, lod ) texelFetch( tex, ivec2( iuv ), lod ) #define OGRE_LoadArray2D( tex, iuv, arrayIdx, lod ) texelFetch( tex, ivec3( iuv, arrayIdx ), lod ) #define OGRE_Load2DMS( tex, iuv, subsample ) texelFetch( tex, iuv, subsample ) #define OGRE_Load3D( tex, iuv, lod ) texelFetch( tex, ivec3( iuv ), lod ) #define bufferFetch1( buffer, idx ) texelFetch( buffer, idx ).x #define OGRE_SAMPLER_ARG_DECL( samplerName ) #define OGRE_SAMPLER_ARG( samplerName ) #define CONST_BUFFER( bufferName, bindingPoint ) layout_constbuffer(binding = bindingPoint) uniform bufferName #define CONST_BUFFER_STRUCT_BEGIN( structName, bindingPoint ) layout_constbuffer(binding = bindingPoint) uniform structName #define CONST_BUFFER_STRUCT_END( variableName ) variableName #define ReadOnlyBufferF( slot, varType, varName ) layout(std430, binding = slot) readonly restrict buffer _##varName { varType varName[]; } #define ReadOnlyBufferU( slot, varType, varName ) layout(std430, binding = slot) readonly restrict buffer _##varName { varType varName[]; } #define ReadOnlyBufferVarF( varType ) varType #define readOnlyFetch( bufferVar, idx ) bufferVar[idx] #define readOnlyFetch1( bufferVar, idx ) bufferVar[idx] #define OGRE_Texture3D_float4 texture3D #define OGRE_ArrayTex( declType, varName, arrayCount ) declType varName[arrayCount] #define FLAT_INTERPOLANT( decl, bindingPoint ) flat decl #define INTERPOLANT( decl, bindingPoint ) decl #define OGRE_OUT_REF( declType, variableName ) out declType variableName #define OGRE_INOUT_REF( declType, variableName ) inout declType variableName #define OGRE_ARRAY_START( type ) type[]( #define OGRE_ARRAY_END ) out gl_PerVertex { vec4 gl_Position; }; layout(std140) uniform; #define worldViewMat worldView #define UNPACK_MAT4( matrixBuf, pixelIdx ) mat4( matrixBuf[(pixelIdx) << 2u], matrixBuf[((pixelIdx) << 2u)+1u], matrixBuf[((pixelIdx) << 2u)+2u], matrixBuf[((pixelIdx) << 2u)+3u] ) #define UNPACK_MAT4x3( matrixBuf, pixelIdx ) mat3x4( matrixBuf[(pixelIdx) << 2u], matrixBuf[((pixelIdx) << 2u)+1u], matrixBuf[((pixelIdx) << 2u)+2u] ) // START UNIFORM DECLARATION struct ShadowReceiverData { float4x4 texViewProj; float2 shadowDepthRange; float normalOffsetBias; float padding; float4 invShadowMapSize; }; struct Light { float4 position; //.w contains the objLightMask float4 diffuse; //.w contains numNonCasterDirectionalLights float3 specular; #define lightTexProfileIdx spotDirection.w }; #define numNonCasterDirectionalLights lights[0].diffuse.w #define areaLightDiffuseMipmapStart areaApproxLights[0].diffuse.w #define areaLightNumMipmapsSpecFactor areaApproxLights[0].specular.w #define numAreaApproxLights areaApproxLights[0].doubleSided.y #define numAreaApproxLightsWithMask areaApproxLights[0].doubleSided.z #define numAreaLtcLights areaLtcLights[0].points[0].w #define numAreaLtcLights areaLtcLights[0].points[0].w struct AreaLight { float4 position; //.w contains the objLightMask float4 diffuse; //[0].w contains diffuse mipmap start float4 specular; //[0].w contains mipmap scale float4 attenuation; //.w contains texture array idx //Custom 2D Shape: // direction.xyz direction // direction.w invHalfRectSize.x // tangent.xyz tangent // tangent.w invHalfRectSize.y float4 direction; float4 tangent; float4 doubleSided; //.y contains numAreaApproxLights //.z contains numAreaApproxLightsWithMask }; struct AreaLtcLight { float4 position; //.w contains the objLightMask float4 diffuse; //.w contains attenuation range float4 specular; //.w contains doubleSided float4 points[4]; //.w contains numAreaLtcLights //points[1].w, points[2].w, points[3].w contain obbFadeFactorLtc.xyz }; //Uniforms that change per pass CONST_BUFFER_STRUCT_BEGIN( PassBuffer, 0 ) { //Vertex shader (common to both receiver and casters) float4x4 viewProj; //Vertex shader float2 depthRange; #define pccVctMinDistance pccVctMinDistance_invPccVctInvDistance_rightEyePixelStartX_envMapNumMipmaps.x #define invPccVctInvDistance pccVctMinDistance_invPccVctInvDistance_rightEyePixelStartX_envMapNumMipmaps.y #define rightEyePixelStartX pccVctMinDistance_invPccVctInvDistance_rightEyePixelStartX_envMapNumMipmaps.z #define envMapNumMipmaps pccVctMinDistance_invPccVctInvDistance_rightEyePixelStartX_envMapNumMipmaps.w #define aspectRatio aspectRatio_planarReflNumMips_unused2.x #define planarReflNumMips aspectRatio_planarReflNumMips_unused2.y } CONST_BUFFER_STRUCT_END( passBuf ); #define light0Buf passBuf #define light1Buf passBuf #define light2Buf passBuf // use_light_buffers //Uniforms that change per Item/Entity CONST_BUFFER( InstanceBuffer, 2 ) { //.x = //The lower 9 bits contain the material's start index. //The higher 23 bits contain the world matrix start index. // //.y = //shadowConstantBias. Send the bias directly to avoid an //unnecessary indirection during the shadow mapping pass. //Must be loaded with uintBitsToFloat // //.z = //lightMask. Ogre must have been compiled with OGRE_NO_FINE_LIGHT_MASK_GRANULARITY uint4 worldMaterialIdx[4096]; }; // END UNIFORM DECLARATION vulkan_layout( OGRE_POSITION ) in vec4 vertex; vulkan_layout( OGRE_DRAWID ) in uint drawId; // START UNIFORM GL DECLARATION ReadOnlyBufferF( 0, float4, worldMatBuf ); // END UNIFORM GL DECLARATION void main() { // Define inputPos using inVs_vertex. #define inputPos inVs_vertex // Define inputNormal and inputTangent using inVs_normal, inVs_tangent, inVs_qtangent #define inputNormal inVs_normal #define inputTangent inVs_tangent ogre_float4x3 worldMat = UNPACK_MAT4x3( worldMatBuf, inVs_drawId ); float4 worldPos = float4( mul(inVs_vertex, worldMat).xyz, 1.0f ); //Lighting is in view space outVs_Position = mul( worldPos, passBuf.viewProj ); float shadowConstantBias = -uintBitsToFloat( worldMaterialIdx[inVs_drawId].y ) * passBuf.depthRange.y; //We can't make the depth buffer linear without Z out in the fragment shader; //however we can use a cheap approximation ("pseudo linear depth") //see http://www.yosoygames.com.ar/wp/2014/01/linear-depth-buffer-my-ass/ outVs_Position.z = outVs_Position.z + shadowConstantBias; /// hlms_uv_count will be 0 on shadow caster passes w/out alpha test } ~~~
darksylinc commented 1 year ago

(reposting because it was from the wrong account)

After the execution I do not find anything in /home/traversaro/gz-ws/srctst/ogrelog, I am not sure if I am doing anything wrong.

OgreNext will not create the folder, so the dump will fail if the path doesn't exist.

Run mkdir -p /home/traversaro/gz-ws/srctst/ogrelog and try again.

traversaro commented 1 year ago

OgreNext will not create the folder, so the dump will fail if the path doesn't exist.

The folder was there, but for some reason ogre-next 2.3.1 was addng a . to the folder name, adding \ at the end of the path solved the problem.

darksylinc commented 1 year ago

Thanks!

I looked into the error.

There should be a file in gz's data folder called CrossPlatformSettings_piece_all.glsl

It starts with this:

@piece( SetCrossPlatformSettings )
@property( syntax == glslvk )
    #version 450 core
@else
    @property( GL3+ >= 430 )
        #version 430 core
    @else
        #version 330 core
    @end
@end

Change it to this:

@piece( SetCrossPlatformSettings )
@property( syntax == glslvk )
    #version 450 core
@else
    @property( GL3+ >= 430 )
        #version 430 core
    @else
        #version 330 core

        @property( !hlms_readonly_is_tex )
            #extension GL_ARB_shader_storage_buffer_object: require
        @end
    @end
@end

And let me know if that fixes it. If so, I'll add a fix to OgreNext.

traversaro commented 1 year ago

This fixes it (at least on mesa 23.1), thanks a lot!

traversaro commented 1 year ago

Ok, I opened two PRs to fix this issue:

Related conda-forge backports:

traversaro commented 1 year ago

Even if the basic functionality with d3d12/WSLg is fixed by the two aforementioned PR, the gz-rendering test suite has still some failures, that anyhow I reported in https://github.com/gazebosim/gz-rendering/issues/852 as this issue is already quite noisy, and I think we can consider it closed once the fixes are merged and released in apt packages.

drustanyjt commented 1 year ago

Even if the basic functionality with d3d12/WSLg is fixed by the two aforementioned PR, the gz-rendering test suite has still some failures, that anyhow I reported in gazebosim/gz-rendering#852 as this issue is already quite noisy, and I think we can consider it closed once the fixes are merged and released in apt packages.

Hi @traversaro I'm facing a similar issue in WSL2 Ubuntu 22.04 with WSLg (though using llvmpipe still works fine). This was on Gazebo Garden (installed from binaries).

I wanted to try using your patched OGRECave/ogre-next#388 to fix this issue, and run gz sim, but I'm not sure how to do so. Would rebuilding gazebo-garden from the master branch be enough? Would I need to build ogre-next as well?

alexdrc00 commented 1 year ago

Hello @traversaro I am facing the same issue. Same as @drustanyjt I want to try using your approach, could you provide some guidance on how you managed to solve it?

traversaro commented 1 year ago

Sorry @drustanyjt, I missed your comment. Thanks @alexdrc00 for the ping.

Would rebuilding gazebo-garden from the master branch be enough? Would I need to build ogre-next as well?

For what regards gz-rendering, indeed just building from master is ok as https://github.com/gazebosim/gz-rendering/pull/851 was merged. For what regard ogre-next, the fix was merged in https://github.com/OGRECave/ogre-next/tree/v2-3, so I guess you should build from that branch (even if more my tests I actually just cherry-picked the change on top of the ogre-next v2.3.1 packaged in conda-forge).

traversaro commented 1 year ago

For what regards long term, unfortunatly ogre-next is packaged via official Ubuntu repositories, so excluding complicated procedures like SRU or setting up a PPA just with patched ogre-next, probably the most important thing is to make sure that in Ubuntu 24.04 a new version of ogre-next with this fix is released.

rosiakpiotr commented 1 year ago

Is there some kind of read that will walk me through applying this patch? I don't have much experience with ubuntu packages, and I am worried that if I uninstall the apt package, other packages will be broken due to missing dependency before I compile patched version, am I right?

traversaro commented 1 year ago

Is there some kind of read that will walk me through applying this patch?

Unfortunatly I do not have one, as I have developed the patches working with conda-forge packages.

Is there some kind of read that will walk me through applying this patch? I don't have much experience with ubuntu packages, and I am worried that if I uninstall the apt package, other packages will be broken due to missing dependency before I compile patched version, am I right?

That is correct, if you uninstall an apt package in general you need to recompile all the downstram packages by source.

lanmo0923 commented 1 year ago

@traversaro I have the same problem with gz-rendering in wsl2, I try to set export LIBGL_ALWAYS_SOFTWARE=1 and the program crashes with the error: terminate called after throwing an instance of 'Ogre::UnimplementedException' what(): OGRE EXCEPTION(9:UnimplementedException): in GL3PlusTextureGpu::copyTo at ./RenderSystems/GL3Plus/src/OgreGL3PlusTextureGpu.cpp (line 685) I want to use ogre instead of orge2 when using gz-rendering like --render-engine ogre , can you give me some advice?