vectorgraphics / asymptote

2D & 3D TeX-Aware Vector Graphics Language
https://asymptote.sourceforge.io/
GNU General Public License v3.0
542 stars 90 forks source link

asymptote compatibility with wayland ? #364

Closed picca closed 1 year ago

picca commented 1 year ago

Hello, I am using asy in order to build the documentation of my hkl library, from the sway environment (pure wayland).

the Debian bug report I filled against asymtote is here

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1025049

the test file is here

https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=1025049;filename=B_b3_y.asy;msg=5

to my opinion the

the glrender call from the backtrace seems suspicious to mee

I would like your help in order to tackle this issue.

thanks for considering

rafelamer commented 1 year ago

Hello, I have a similar problem i I run asy under Xvfb:

As a root: /usr/bin/Xvfb :42 -screen 0 1024x768x24 -ac +extension GLX +render -noreset

As a normal user: export DISPLAY=:42 asy -vvvv -f pdf -render 10 3S+1D.asy

The last lines of the output are:

GLSL version 4.50 No fragment shader interlock support shipout3(prefix,f,preview ? nativeformat() : format, ^ /usr/share/asymptote/three.asy: 2896.13

Best regards, Rafel Amer

johncbowman commented 1 year ago

This issue sounds very much like this problem, which was solved by upgrading the NVIDIA driver. Please give that a try and let us know. (I am still using X and haven't yet tried out Wayland since it doesn't support fvwm, but I think the problem is more likely due to a bug in the graphics driver.)

https://sourceforge.net/p/asymptote/discussion/409349/thread/d535c62247/

rafelamer commented 1 year ago

I'm running asy in a virtual server whitout any X environment, NVIDIA card and nvidia drivers. I run Fedora 37 server and the version of freeglut is freeglut-3.2.2-2.fc37.x86_64

Best regards, Rafel Amer

johncbowman commented 1 year ago

Regarding the debian report, try: ./configure --disable-gc make clean make CFLAGS=-g

and then see if the backtrace changes. Running under valgrind is a good way to find the first instance of a segfault, uninitialized memory, or floating point exception.

johncbowman commented 1 year ago

Program terminated with signal SIGFPE, Arithmetic exception.

This suggests an FPE exception in your graphics driver. You can temporarily work around this by specifying -mask on the command line. A better work around is to identify which OpenGL call is triggering the FPE. For example, the OSMesa library in Fedora 37 generates an FPE in glLinkProgram. Commit 72670f2b7e77a8d6e1b44b82f3a240f75205416b works around an FPE on that platform. Perhaps that will solve your issue too.

johncbowman commented 1 year ago

Now that the 2.85 release is out, can we now close this issue?

picca commented 1 year ago

I will juste wait for the Debian release of 2.85, and report back, thanks

Frederic