Looks to me like you've got it. With your instructions and some notes in doc/README.Linux, Revision: 77316 compiled, made benchmarks, runs and raytraces. The benchmarks report:
These numbers seem to indicate that this machine is approximately 7234 times faster than the reference machine being used for comparison, a VAX 11/780 running 4.3 BSD named VGR. These results are in fact approximately 3.86 orders of magnitude faster than the reference.
My order of actions was not systematic, so it's not clear exactly which actions were necessary. The doc/README.Linux notes say:
Ubuntu/Debian
-------------
Users of Ubuntu, Debian, and other similar packaging distributions of Linux will need to ensure that a few essentials are in place before you will be able to compile BRL-CAD.
Following the build instructions in the INSTALL file. You will need:
gcc (6+, e.g. 6.0.3) g++ (6+, e.g. 6.0.3) make (e.g. gnu make 3.8.0) cmake (3.0.2 or newer)
All three of those have implicit dependencies on other packages.
You will also want to make sure that you have the X11 development headers installed:
Perhaps I should have said "already present". I hadn't found these instructions on the first compile attempt and there were no error messages apart from the pointer-type mismatch. Nothing about missing files or programs. The machine seemed happy with the existing gcc, g++, make and cmake. I didn't change them.
In any case, I'm simply glad it worked. As a matter of curiosity, does OpenGL on the Pi4 use the GPU? I know there was work to that end, but haven't heard much recently.
If you want to follow-up, feel free. It seems to me there are a huge number of bugs and feature requests that have gone unfixed, sometimes for years. OTOH, the wiki is apparently editable (even anonymously) so that might a good place to add some Raspberry Pi specific compilation notes.
The cmake file changes might be best submitted in the patch department on Sourceforge.
I can try to do these things this weekend.
Funny, I initially tried this compilation just to see if my little 3B+ could even build this project. And to see how long it would take. I didn't save exact times but it was about two hours.
The Pi4 was faster, but not hugely. I think it took about 90 minutes.
The benchmarks worked on the Pi4, reporting:
-----------quote----------------- B R L - C A D B E N C H M A R K ================================= Running /home/bob/brlcad-code/build/bin/benchmark on Thu Oct 1 19:29:42 PDT 2020 Logging output to run-26267-benchmark.log Linux raspberrypi 5.4.51-v7l+ #1333 SMP Mon Aug 10 16:51:40 BST 2020 armv7l GNU/Linux
Using [/home/bob/brlcad-code/build/bin/rt] for RT Using [/home/bob/brlcad-code/build/bin/../share/db] for DB Using [/home/bob/brlcad-code/build/bin/../share/pix] for PIX Using [/home/bob/brlcad-code/build/bin/../share/pix] for LOG Using [/home/bob/brlcad-code/build/bin/pixcmp] for CMP Using [/home/bob/brlcad-code/build/bin/elapsed.sh] for ELP Using [32] for TIMEFRAME Using [300] for MAXTIME Using [2] for DEVIATION Using [5] for AVERAGE
RT reports the following version information: BRL-CAD Release 7.32.1 The BRL-CAD Raytracer RT BRL-CAD Release 7.32.1 The BRL-CAD Ray-Tracing Library BRL-CAD Release 7.32.1 The BRL-CAD Numerical Computation Library BRL-CAD Release 7.32.1 The BRL-CAD Utility Library
Minimum run time is 3 minutes, 12 seconds Maximum run time is 30 minutes Estimated time is 9 minutes, 36 seconds
Running the BRL-CAD Benchmark tests... please wait ...
+++++ moss Frame 0: 261660 rays in 0.21 sec = 1219196.54 rays/sec (RTFM) Frame 1: 542220 rays in 0.42 sec = 1286778.91 rays/sec (RTFM) Frame 5: 8390560 rays in 6.44 sec = 1302078.75 rays/sec (RTFM) Frame 7: 34038144 rays in 24.53 sec = 1387612.44 rays/sec (RTFM) Frame 8: 68601600 rays in 48.95 sec = 1401336.68 rays/sec (RTFM) Frame 9: 68698624 rays in 50.69 sec = 1355310.36 rays/sec (RTFM) Frame 10: 69267200 rays in 50.61 sec = 1368731.80 rays/sec (RTFM) Frame 11: 68244224 rays in 51.71 sec = 1319747.12 rays/sec (RTFM) pixcmp pixels: 262144 matching, 0 off by 1, 0 off by many moss.pix: answers are RIGHT
+++++ world Frame 0: 366988 rays in 0.70 sec = 524399.48 rays/sec (RTFM) Frame 1: 721822 rays in 1.36 sec = 532376.49 rays/sec (RTFM) Frame 4: 5774192 rays in 10.43 sec = 553620.67 rays/sec (RTFM) Frame 5: 11665088 rays in 21.25 sec = 548839.33 rays/sec (RTFM) Frame 6: 23296384 rays in 41.33 sec = 563646.31 rays/sec (RTFM) Frame 7: 23316800 rays in 42.02 sec = 554873.90 rays/sec (RTFM) pixcmp pixels: 262144 matching, 0 off by 1, 0 off by many world.pix: answers are RIGHT
+++++ star Frame 0: 232467 rays in 0.47 sec = 491700.45 rays/sec (RTFM) Frame 1: 464618 rays in 0.91 sec = 509621.25 rays/sec (RTFM) Frame 5: 7443936 rays in 13.67 sec = 544505.34 rays/sec (RTFM) Frame 6: 14919360 rays in 27.85 sec = 535771.45 rays/sec (RTFM) Frame 7: 14951296 rays in 28.42 sec = 526051.61 rays/sec (RTFM) Frame 8: 15188736 rays in 29.17 sec = 520757.95 rays/sec (RTFM) pixcmp pixels: 262144 matching, 0 off by 1, 0 off by many star.pix: answers are RIGHT
+++++ bldg391 Frame 0: 275155 rays in 0.72 sec = 383359.18 rays/sec (RTFM) Frame 1: 540192 rays in 1.38 sec = 390627.27 rays/sec (RTFM) Frame 4: 4562640 rays in 10.85 sec = 420357.31 rays/sec (RTFM) Frame 5: 8839232 rays in 21.23 sec = 416373.51 rays/sec (RTFM) Frame 6: 17941184 rays in 40.92 sec = 438488.06 rays/sec (RTFM) Frame 7: 17837440 rays in 41.56 sec = 429217.74 rays/sec (RTFM) Frame 8: 18077184 rays in 41.67 sec = 433863.00 rays/sec (RTFM) pixcmp pixels: 262144 matching, 0 off by 1, 0 off by many bldg391.pix: answers are RIGHT
+++++ m35 Frame 0: 483117 rays in 0.95 sec = 511122.15 rays/sec (RTFM) Frame 1: 1010506 rays in 1.82 sec = 555080.19 rays/sec (RTFM) Frame 4: 7834816 rays in 14.04 sec = 557878.91 rays/sec (RTFM) Frame 5: 15588736 rays in 27.58 sec = 565221.71 rays/sec (RTFM) Frame 6: 31179200 rays in 56.33 sec = 553482.90 rays/sec (RTFM) Frame 7: 31441792 rays in 55.38 sec = 567773.08 rays/sec (RTFM) pixcmp pixels: 262070 matching, 74 off by 1, 0 off by many m35.pix: answers are RIGHT
+++++ sphflake Frame 0: 1397652 rays in 2.14 sec = 653622.38 rays/sec (RTFM) Frame 1: 2781346 rays in 4.07 sec = 683779.98 rays/sec (RTFM) Frame 3: 11483712 rays in 15.98 sec = 718852.35 rays/sec (RTFM) Frame 4: 22896464 rays in 31.45 sec = 728078.31 rays/sec (RTFM) Frame 5: 22204352 rays in 31.93 sec = 695431.11 rays/sec (RTFM) Frame 6: 22355824 rays in 31.87 sec = 701569.01 rays/sec (RTFM) pixcmp pixels: 262144 matching, 0 off by 1, 0 off by many sphflake.pix: answers are RIGHT
... Done.
Total testing time elapsed: 16 minutes, 30 seconds
The following files have been generated and/or modified: *.log ..... final log files for each individual raytrace test *.pix ..... final pix image files for each individual raytrace test *.log.* ... log files for previous frames and raytrace tests *.pix.* ... pix image files for previous frames and raytrace tests summary ... performance results summary, 2 lines per run
Run '/home/bob/brlcad-code/build/bin/benchmark clean' to remove generated pix files.
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# Benchmark results indicate an approximate VGR performance metric of 7234 Logarithmic VGR metric is 3.86 (natural logarithm is 8.89) #*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
These numbers seem to indicate that this machine is approximately 7234 times faster than the reference machine being used for comparison, a VAX 11/780 running 4.3 BSD named VGR. These results are in fact approximately 3.86 orders of magnitude faster than the reference.
Here are some other approximated VGR results for perspective: 120 on a 200MHz R5000 running IRIX 6.5 250 on a 500 MHz Pentium III running RedHat 7.1 550 on a dual 450 MHz UltraSPARC II running SunOS 5.8 1000 on a dual 500 MHz G4 PowerPC running Mac OS X 10.2 1500 on a dual 1.66 GHz Athlon MP 2000+ running RedHat 7.3 52000 on a 4x4 CPU 2.93 GHz Xeon running RHEL Server 5.4 65000 on a 512 CPU 400 MHz R12000 Running IRIX 6.5
You are encouraged to submit your benchmark results and system configuration information to snipped-for-privacy@brlcad.org ~~~~~~~~~~~~~~~~~~~~ Including additional kernel and hardware information in the log.
Collecting system state information (via /sbin/sysctl) Collecting system CPU information (via /proc/cpuinfo) Collecting system CPU information (via /usr/bin/lscpu)
Read the benchmark.tr document for more details on the BRL-CAD Benchmark. The document should be available in the 'doc' directory of any source or complete binary distribution of BRL-CAD.
Output was saved to run-26267-benchmark.log from /home/bob/brlcad-code/build/bench Benchmark testing complete.
-------------end quote-----------------------
It seems best if I simply report that the problem is fixed and perhaps quote the patches you developed. It makes little sense for me to submit them, since I can't answer any questions that might come up. The connection between the error messages and the fix eludes me completely. Many thanks!
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.