Skip to content
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

Celestia on Raspberry Pi 5 Bookworm 64 bit Wayland: orbits, constellations/constellation borders, coordinate grids are not rendered #2211

Open
arohrbacher opened this issue Jul 3, 2024 · 15 comments
Labels
bug Something isn't working renderer

Comments

@arohrbacher
Copy link

arohrbacher commented Jul 3, 2024

Celestia now runs very well on my Raspi5 (solid 60 fps), but these things don't get rendered (when the respective options are switched on in the menu):

  • orbits
  • constellation lines
  • constellation borders
  • coordinate grids (coordinate numbers on the edges of the screen are displayed, just not the grids themselves)

Attached my /tmp/celestia-shaders.log file
celestia-shaders.log

Funnily enough, a small part of the ISS orbit is rendered as a red line, but no planetary or moon orbits:
celestia_ISS_orbit

My system details: Raspberry Pi 5 with 4 GB RAM, Rapberry OS Bookworm 64 bit, 4 kB page size, Wayland.
Running the GTK build of Celestia; the QT5 build has the same issues...

@375gnu
Copy link
Collaborator

375gnu commented Jul 3, 2024

Could you also provide Help->OpenGL Info content?

@375gnu 375gnu added bug Something isn't working renderer labels Jul 3, 2024
@arohrbacher
Copy link
Author

here the OpenGL info for the GTK build:
(I cannot select and copy the text in the box, hence a screenshot):
OpenGL_Info_GTKbuild
here for the QT5 build:
OpenGL_Info_QT5build.txt

@375gnu
Copy link
Collaborator

375gnu commented Jul 4, 2024

It can be a bug in OpenGL driver. Could you recompile GTK UI with -DENABLE_GLES and test it?

@arohrbacher
Copy link
Author

ok, I compilled with

cmake .. -DENABLE_GTK=ON -DENABLE_GLES=ON
make -j4
sudo make install

running celestia-gtk throws this:
GTK_build_error

but running celestia-qt5 actually works in showing the orbits/constellations/etc:
QT5_build

fps is still great; the only issue with the QT5 build is that the color depth (?) seems lower than when I run the GTK build: in the QT5 build is see some "color bands" when e.g. the sun is rendered:
color_bands_QT5_build

@375gnu
Copy link
Collaborator

375gnu commented Jul 4, 2024

Could make a "clean" compilation for GTK? It seems it still uses the old GL widget.
Like

mkdir build-gles && cd build-gles
cmake  .. -DENABLE_GTK=ON -DENABLE_GLES=ON
make -j4
sudo make install

Btw, do you have any issues with simple SDL UI?

@arohrbacher
Copy link
Author

arohrbacher commented Jul 5, 2024

building the GTK version in a "clean" build folder (and disabling a QT5 build with -DENABLE_QT5=OFF) doesn't help: I still get the "Celestia was unable to initialize OpenGL" error when attempting to run the GTK version. I also attempted to build a GTK version with GTK3 (using -DUSE_GTK3), but this also gives the "Celestia was unable to initialize OpenGL" error.

A SDL build works: orbits are rendered and the color depth is OK, but how do I use the program? I don't have menus etc.

A QT6 build works actually pretty well: orbits/constellations/constellation border/coordinate grids are rendered and the color depth is just fine - I think I have found the right build for my Raspi5.
This is how I configured cmake:
cmake .. -DENABLE_QT6=ON -DENABLE_GLES=ON

@375gnu
Copy link
Collaborator

375gnu commented Jul 5, 2024

but this also gives the "Celestia was unable to initialize OpenGL" error.
so, the last check, please, could you show output of ldd /usr/local/bin/celestia-gtk and provide file build-gles/CMakeCache.txt?

A SDL build works: orbits are rendered and the color depth is OK, but how do I use the program? I don't have menus etc.
There is a file controls.txt in the root folder with sources. It's also installed into /usr/local/share/doc/celestia

A QT6 build works actually pretty well: orbits/constellations/constellation border/coordinate grids are rendered and the color depth is just fine - I think I have found the right build for my Raspi5.

Great! Perhaps Qt5 require other packages, afair there were packages with gles suffix. But it's better to switch to Qt6 as Qt5 is not supported anymore.

@arohrbacher
Copy link
Author

Just found that planets with rings have issues when ring shadows are turned on (QT5 and QT6 builds):
QT6_build_ringshadows_on

When turning them off, it looks like this:
QT6_build_ringshadows_off

@arohrbacher
Copy link
Author

as for the GTK build (that failed with the "Celestia was unable to initialize OpenGL" error), attached the information you requested:
ldd_output.txt
CMakeCache.txt

@375gnu
Copy link
Collaborator

375gnu commented Jul 5, 2024

as for the GTK build (that failed with the "Celestia was unable to initialize OpenGL" error), attached the information you requested:

Thanks. Both are okay, so the problem is not with CMake, but with my EGL code.

Just found that planets with rings have issues when ring shadows are turned on (QT5 and QT6 builds):

Could you go to Saturn when ring shadows are on and then post /tmp/celestia-shaders.log?

@arohrbacher
Copy link
Author

here you go...
celestia-shaders.log

@375gnu
Copy link
Collaborator

375gnu commented Jul 5, 2024

So the driver exposes GL_ARB_shader_texture_lod white its support is incomplete. Please create .celestia-1.7.cfg file with the following content:

Configuration
{
    IgnoreGLExtensions [ "GL_ARB_shader_texture_lod" ]
}

It should fix the problem.

@arohrbacher
Copy link
Author

arohrbacher commented Jul 5, 2024

ok, placing .celestia-1.7.cfg into my $HOME fixed the ring shadow issue - many thanks.

I found some other "issues", however:

  • The Saturn moonlet Hyperion is not rendered using OpenGL ES 2.0 (this worked when using OpenGL 2.1)
  • there is some "halo" around the sun; using OpenGL ES 2.0 this halo disappears quickly when you move away from the sun (it disappears at about >0.2 AU); using OpenGL 2.1 it stayed much longer - all the way to at least Saturn. This makes the sun pretty hard to spot when you are in the outer solar system...

@375gnu
Copy link
Collaborator

375gnu commented Jul 5, 2024

The Saturn moonlet Hyperion is not rendered using OpenGL ES 2.0 (this worked when using OpenGL 2.1)

Please provide /tmp/celestia-shaders.log

here is some "halo" around the sun; using OpenGL ES 2.0 this halo disappears quickly when you move away from the sun (it disappears at about >0.2 AU); using OpenGL 2.1 it stayed much longer - all the way to at least Saturn. This makes the sun pretty hard to spot when you are in the outer solar system...

Could you check different star modes? Press Ctrl+S

@arohrbacher
Copy link
Author

The Saturn moonlet Hyperion is not rendered using OpenGL ES 2.0 (this worked when using OpenGL 2.1)

Please provide /tmp/celestia-shaders.log

Sorry, now it is working - Hyperion is rendered; don't know what happened before - I did switch off my Raspi5 in the meantime, though...

here is some "halo" around the sun; using OpenGL ES 2.0 this halo disappears quickly when you move away from the sun (it disappears at about >0.2 AU); using OpenGL 2.1 it stayed much longer - all the way to at least Saturn. This makes the sun pretty hard to spot when you are in the outer solar system...

Could you check different star modes? Press Ctrl+S

I already tried the different star modes - originally I had it at "fuzzy points"; setting it to "scaled disks" turns off the halo at <0.4 AU and >2 AU; at "points" the halo is also turned off at >0.2 AU

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working renderer
Projects
None yet
Development

No branches or pull requests

2 participants