gazebosim / gz-sim

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

Default gui elements cause a crash in NVIDIA driver 460 #1049

Open tfoote opened 2 years ago

tfoote commented 2 years ago

I was testing ignition fortress prerelease from debian packages on bionic.

Full reproduction: All worlds with the default gui elements settings crash on rendering. For example shapes.sdf

Copying a gui element from one of the other files prevents the crashes.

Example tracebacks and console command history to reproduce: https://gist.github.com/tfoote/b8237191b0b6d6811b656460c208179f

Working on shapes.sdf we commented everything out and it still failed. Iterating with @iche033 we got it working by copying the <gui> tag from other example sdf files.


<?xml version="1.0" ?>
<!--

Try moving a model:

    ign service -s /world/shapes/set_pose --reqtype ignition.msgs.Pose --reptype ignition.msgs.Boolean --timeout 300 --req 'name: "box", position: {z: 5.0}'

-->
<sdf version="1.6">
  <world name="shapes">
    <scene>
      <ambient>1.0 1.0 1.0</ambient>
      <background>0.8 0.8 0.8</background>
    </scene>
    <gui fullscreen="0">

      <!-- 3D scene -->
      <plugin filename="GzScene3D" name="3D View">
        <ignition-gui>
          <title>3D View</title>
          <property type="bool" key="showTitleBar">false</property>
          <property type="string" key="state">docked</property>
        </ignition-gui>

        <engine>ogre2</engine>
        <scene>scene</scene>
        <ambient_light>0.4 0.4 0.4</ambient_light>
        <background_color>0.8 0.8 0.8</background_color>
        <camera_pose>-6 0 6 0 0.5 0</camera_pose>
      </plugin>

      <!-- World control -->
      <plugin filename="WorldControl" name="World control">
        <ignition-gui>
          <title>World control</title>
          <property type="bool" key="showTitleBar">false</property>
          <property type="bool" key="resizable">false</property>
          <property type="double" key="height">72</property>
          <property type="double" key="width">121</property>
          <property type="double" key="z">1</property>

          <property type="string" key="state">floating</property>
          <anchors target="3D View">
            <line own="left" target="left"/>
            <line own="bottom" target="bottom"/>
          </anchors>
        </ignition-gui>

        <play_pause>true</play_pause>
        <step>true</step>
        <start_paused>true</start_paused>
        <service>/world/velocity_control/control</service>
        <stats_topic>/world/velocity_control/stats</stats_topic>

      </plugin>

      <!-- World statistics -->
      <plugin filename="WorldStats" name="World stats">
        <ignition-gui>
          <title>World stats</title>
          <property type="bool" key="showTitleBar">false</property>
          <property type="bool" key="resizable">false</property>
          <property type="double" key="height">110</property>
          <property type="double" key="width">290</property>
          <property type="double" key="z">1</property>

          <property type="string" key="state">floating</property>
          <anchors target="3D View">
            <line own="right" target="right"/>
            <line own="bottom" target="bottom"/>
          </anchors>
        </ignition-gui>

        <sim_time>true</sim_time>
        <real_time>true</real_time>
        <real_time_factor>true</real_time_factor>
        <iterations>true</iterations>
        <topic>/world/velocity_control/stats</topic>

      </plugin>

    </gui>

    <!--
    <light type="directional" name="sun">
      <cast_shadows>true</cast_shadows>
      <pose>0 0 10 0 0 0</pose>
      <diffuse>0.8 0.8 0.8 1</diffuse>
      <specular>0.2 0.2 0.2 1</specular>
      <attenuation>
        <range>1000</range>
        <constant>0.9</constant>
        <linear>0.01</linear>
        <quadratic>0.001</quadratic>
      </attenuation>
      <direction>-0.5 0.1 -0.9</direction>
    </light>
    <model name="ground_plane">
      <static>true</static>
      <link name="link">
        <collision name="collision">
          <geometry>
            <plane>
              <normal>0 0 1</normal>
              <size>100 100</size>
            </plane>
          </geometry>
        </collision>
        <visual name="visual">
          <geometry>
            <plane>
              <normal>0 0 1</normal>
              <size>100 100</size>
            </plane>
          </geometry>
          <material>
            <ambient>0.8 0.8 0.8 1</ambient>
            <diffuse>0.8 0.8 0.8 1</diffuse>
            <specular>0.8 0.8 0.8 1</specular>
          </material>
        </visual>
      </link>
    </model>
-->
<!--
    <model name="box">
      <pose>0 0 0.5 0 0 0</pose>
      <link name="box_link">
        <inertial>
          <inertia>
            <ixx>0.16666</ixx>
            <ixy>0</ixy>
            <ixz>0</ixz>
            <iyy>0.16666</iyy>
            <iyz>0</iyz>
            <izz>0.16666</izz>
          </inertia>
          <mass>1.0</mass>
        </inertial>
        <collision name="box_collision">
          <geometry>
            <box>
              <size>1 1 1</size>
            </box>
          </geometry>
        </collision>

        <visual name="box_visual">
          <geometry>
            <box>
              <size>1 1 1</size>
            </box>
          </geometry>
          <material>
            <ambient>1 0 0 1</ambient>
            <diffuse>1 0 0 1</diffuse>
            <specular>1 0 0 1</specular>
          </material>
        </visual>
      </link>
    </model>

    <model name="cylinder">
      <pose>0 -1.5 0.5 0 0 0</pose>
      <link name="cylinder_link">
        <inertial>
          <inertia>
            <ixx>0.1458</ixx>
            <ixy>0</ixy>
            <ixz>0</ixz>
            <iyy>0.1458</iyy>
            <iyz>0</iyz>
            <izz>0.125</izz>
          </inertia>
          <mass>1.0</mass>
        </inertial>
        <collision name="cylinder_collision">
          <geometry>
            <cylinder>
              <radius>0.5</radius>
              <length>1.0</length>
            </cylinder>
          </geometry>
        </collision>

        <visual name="cylinder_visual">
          <geometry>
            <cylinder>
              <radius>0.5</radius>
              <length>1.0</length>
            </cylinder>
          </geometry>
          <material>
            <ambient>0 1 0 1</ambient>
            <diffuse>0 1 0 1</diffuse>
            <specular>0 1 0 1</specular>
          </material>
        </visual>
      </link>
    </model>

    <model name="sphere">
      <pose>0 1.5 0.5 0 0 0</pose>
      <link name="sphere_link">
        <inertial>
          <inertia>
            <ixx>0.1</ixx>
            <ixy>0</ixy>
            <ixz>0</ixz>
            <iyy>0.1</iyy>
            <iyz>0</iyz>
            <izz>0.1</izz>
          </inertia>
          <mass>1.0</mass>
        </inertial>
        <collision name="sphere_collision">
          <geometry>
            <sphere>
              <radius>0.5</radius>
            </sphere>
          </geometry>
        </collision>

        <visual name="sphere_visual">
          <geometry>
            <sphere>
              <radius>0.5</radius>
            </sphere>
          </geometry>
          <material>
            <ambient>0 0 1 1</ambient>
            <diffuse>0 0 1 1</diffuse>
            <specular>0 0 1 1</specular>
          </material>
        </visual>
      </link>
    </model>

    <model name="capsule">
      <pose>0 -3.0 0.5 0 0 0</pose>
      <link name="capsule_link">
        <inertial>
          <inertia>
            <ixx>0.074154</ixx>
            <ixy>0</ixy>
            <ixz>0</ixz>
            <iyy>0.074154</iyy>
            <iyz>0</iyz>
            <izz>0.018769</izz>
          </inertia>
          <mass>1.0</mass>
        </inertial>
        <collision name="capsule_collision">
          <geometry>
            <capsule>
              <radius>0.2</radius>
              <length>0.6</length>
            </capsule>
          </geometry>
        </collision>
        <visual name="capsule_visual">
          <geometry>
            <capsule>
              <radius>0.2</radius>
              <length>0.6</length>
            </capsule>
          </geometry>
          <material>
            <ambient>1 1 0 1</ambient>
            <diffuse>1 1 0 1</diffuse>
            <specular>1 1 0 1</specular>
          </material>
        </visual>
      </link>
    </model>

    <model name="ellipsoid">
      <pose>0 3.0 0.5 0 0 0</pose>
      <link name="ellipsoid_link">
        <inertial>
          <inertia>
            <ixx>0.068</ixx>
            <ixy>0</ixy>
            <ixz>0</ixz>
            <iyy>0.058</iyy>
            <iyz>0</iyz>
            <izz>0.026</izz>
          </inertia>
          <mass>1.0</mass>
        </inertial>
        <collision name="ellipsoid_collision">
          <geometry>
            <ellipsoid>
              <radii>0.2 0.3 0.5</radii>
            </ellipsoid>
          </geometry>
        </collision>
        <visual name="ellipsoid_visual">
          <geometry>
            <ellipsoid>
              <radii>0.2 0.3 0.5</radii>
            </ellipsoid>
          </geometry>
          <material>
            <ambient>1 0 1 1</ambient>
            <diffuse>1 0 1 1</diffuse>
            <specular>1 0 1 1</specular>
          </material>
        </visual>
      </link>
    </model>
-->
    </world>
</sdf>

This is running nvidia and validated as running velocity_control.sdf and diff_drive.sdf and sensors_demo.sdf.

rocker --pull --user --nvidia --x11 ubuntu:bionic

    1  sudo apt-get update
    2  sudo apt-get install lsb-release wget gnupg
    3  sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
    4  sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-prerelease `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-prerelease.list'
    5  wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
    6  sudo apt-get update
    7  sudo apt-get install ignition-fortress
    8  ign gazebo shapes.sdf

Environment

chapulina commented 2 years ago

Thanks for the ticket. I just tried a fresh rocker Bionic container with the same commands as you and things are working for me.

I think this may be related to the NVIDIA driver on the host. I'm on a Focal host with:

NVIDIA-SMI 470.63.01    Driver Version: 470.63.01    CUDA Version: 11.4 
dignakov commented 2 years ago

Please let me know if there are any logs or info I can provide as well, as I'm seeing the same GL3.3 error and segfault on an intel GPU.