nianticlabs / ace

[CVPR 2023 - Highlight] Accelerated Coordinate Encoding (ACE): Learning to Relocalize in Minutes using RGB and Poses
https://nianticlabs.github.io/ace
Other
360 stars 34 forks source link

render_visualization error #9

Closed keepgoing2996 closed 1 year ago

keepgoing2996 commented 1 year ago

Hi I am getting this error after setting --render_visualization=True, any idea about that? INFO:OpenGL.platform.ctypesloader:Failed to load library ( 'libEGL.so.0' ): libEGL.so.0: cannot open shared object file: No such file or directory WARNING:ace_visualizer:Rendering failed, trying again!

tcavallari commented 1 year ago

Hello.

Looks like an issue with missing libraries. Could you make sure the nvidia drivers are installed correctly? They should have installed all the required dependencies transitively. We ran our tests with driver version 520.

If that's already the case, maybe you can try running sudo apt install libegl1 libegl-mesa0 to install the egl packages manually.

ebrach commented 1 year ago

Maybe this information of PyRender (which we use for the visualisation) is useful for you as well: https://pyrender.readthedocs.io/en/latest/examples/offscreen.html

We set the rendering backend here in case you want to choose something else: https://github.com/nianticlabs/ace/blob/6515d1df5bb0c2c803137baa52a901fe2052089a/ace_visualizer.py#L4

keepgoing2996 commented 1 year ago

Hello.

Looks like an issue with missing libraries. Could you make sure the nvidia drivers are installed correctly? They should have installed all the required dependencies transitively. We ran our tests with driver version 520.

If that's already the case, maybe you can try running sudo apt install libegl1 libegl-mesa0 to install the egl packages manually. Seems like I already installed that, and here is my nvidia-driver information

Reading package lists... Done Building dependency tree
Reading state information... Done libegl-mesa0 is already the newest version (21.2.6-0ubuntu0.1~20.04.2). libegl-mesa0 set to manually installed. libegl1 is already the newest version (1.3.2-1~ubuntu0.20.04.2). libegl1 set to manually installed. 0 upgraded, 0 newly installed, 0 to remove and 167 not upgraded.

NVIDIA-SMI 470.57.02 Driver Version: 470.57.02 CUDA Version: 11.6

keepgoing2996 commented 1 year ago

Maybe this information of PyRender (which we use for the visualisation) is useful for you as well: https://pyrender.readthedocs.io/en/latest/examples/offscreen.html

We set the rendering backend here in case you want to choose something else:

https://github.com/nianticlabs/ace/blob/6515d1df5bb0c2c803137baa52a901fe2052089a/ace_visualizer.py#L4

Right I tried to use osmesa, and got similar error as well.

File "code/ace/ace_visualizer.py", line 621, in _render_mapping_frame_from_buffers current_frame = self._render_frame_from_buffers_safe() File "code/ace/ace_visualizer.py", line 569, in _render_frame_from_buffers_safe raise RuntimeError("Re-rendering failed too often...") RuntimeError: Re-rendering failed too often...

ebrach commented 1 year ago

I see two potential courses of action:

1) Independent of ACE (but in the same Conda environment) try to get a minimal example of PyRender to work: https://pyrender.readthedocs.io/en/latest/examples/quickstart.html To make sure that all libraries and drivers are setup correctly.

2) Remove the try ... except block in _render_frame_from_buffers_safe here: https://github.com/nianticlabs/ace/blob/6515d1df5bb0c2c803137baa52a901fe2052089a/ace_visualizer.py#L563-L567 This will forward the actual rendering exception to the console, which might provide more information than the generic runtime error we forward if rendering fails too often.

tcavallari commented 1 year ago

Closing for now. Happy to continue the discussion if follow-up questions come up.