-
Notifications
You must be signed in to change notification settings - Fork 466
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mesa 21 without Mesa workaround incorrectly renders PointCloud2 #1721
Comments
Is there some kind of OpenGL/Ogre profiling info I can provide? |
@simonschmeisser Is this the same issue you described in #1714? |
Yes, I saw the same. We only use "points" so for me the speed gain would be worth it 😉 |
I can confirm the issue on an Intel GPU as well with stock Mesa 21.2.6 on Focal. @simonschmeisser, you argue with speed gain. What exactly do you compare and how? |
My "measurements" have not been very scientific so far. With the hack enabled and a very detailed octomap rendering drops < 1fps. (octomap rendering is basically type "boxes") (That "data point" was on bionic) Trying to make it a bit more reproducible I changed the send_point_cloud_2.py to 1000x1000 points. Without the hack the white dots are displayed at 30fps, with This bug unfortunately also applies to the display of octomaps I tried using renderdoc but it complains about old OpenGl versions/ contexts being used ... oh my. |
I think the big difference in performance is in https://github.com/ros-visualization/rviz/blob/noetic-devel/src/rviz/ogre_helpers/point_cloud.cpp using geometry shaders and only transferring the one point we currently see or doing that "by hand" on the cpu and then transferring a lot more data (and doing a lot more transformations potentially) |
apitrace gives shader compiler errors:
|
Is there a way to show shader compilation errors directly in rviz? |
No idea. You could try different names in the corresponding shader: rviz/ogre_media/materials/glsl150/box.geom Lines 22 to 28 in 697ed3f
|
Looks like the GLSL feature used here requires GLSL >= 410: KhronosGroup/glslang#1441 (comment) |
dont call that block gl_PerVertex
no. SSO are not supported by GL1. For GL3+ Ogre takes care of that for you:
renderdoc only works with GL3+
no. just different syntax.
yes. this frees up CPU and Ogre is CPU bound. geometry shaders can be used with GLSL120 too, though |
Describe your issue here and explain how to reproduce it.
Your environment
echo "$LANG $LC_NUMERIC"
:C C
On this system, I'm using a more recent Mesa from kisak-mesa PPA (mesa 21.3.7).
Currently, there is the mesa version workaround that forces using GLSL 1.4 on systems with Mesa >= 20. In order to resolve #1701, I tried disabling the Mesa workaround, since the original issue (large points) should have been fixed since Mesa 21.0.3. The big points issue is fixed, but there is another problem: every style of PointCloud2 display except "Points" is displayed just as a white dot regardless of the settings:
How to test
rviz
in one terminal, configure aPointCloud2
display for topicpoints2
, set fixed frame tomap
.The text was updated successfully, but these errors were encountered: