Closed jimblandy closed 4 years ago
For the program to run at all on Fedora 30, I need to set an environment variable:
$ MESA_GL_VERSION_OVERRIDE=3.3 cargo run
Forgot to mention: to compile the program, unpack the ZIP file in pathfinder/examples
- it should create the lissajous
subdir - and add examples/lissajous
to the workspace. Then the relative paths in lissajous/Cargo.toml
will be correct, and it will be able to find the pathfinder resources.
It seems to have something to do with drawing the performance graphs with the scale established by render_demo
. Adding a save/restore pair to render_demo
or not calling the performance graphs' render
methods prevents the crash.
I'm seeing some sort of regression from 41ad372. Before that commit my scenes render in much less than a second but with that commit calls to build_and_render simply don't return, at least in the amount of time I've been willing to wait. I'm rendering moderately complex scenes to an off screen surface. I don't have a minimal example to show the problem yet but I'll try to put something together.
The problem appears to be with paths that overlap the viewport boundary. In my environment this example hangs on build_and_render: https://gist.github.com/alec-deason/a093aecaebbed430f59df624547efa2f
But if you use the configuration in the comments on line 105 it works as expected. The difference is that the broken version renders a bunch of arcs partially out of view and the working version moves them entirely into view. I see the same behavior in my real code, if I'm very careful to only create paths that are fully in view everything is fine but as soon as I have a non-trivial number of paths completely or partially out of view it fails.
If you think this should be a separate issue, let me know and I'll open one.
Filing a new issue instead of using a closed one will be easier to track.
In a debug build, the attached program panics in the tiler, failing this assertion:
Backtrace of the crashing thread:
lissajous.zip