Date: Thu, 24 Dec 2009 06:34:02 +0200 From: Richard Mace <macerl@telkomsa.net> To: Pieter de Goeje <pieter@degoeje.nl> Cc: Roland Smith <rsmith@xs4all.nl>, freebsd-questions@freebsd.org, Roger <rnodal@gmail.com> Subject: Re: Help building/running SDL/OpenGL code Message-ID: <200912240634.02686.macerl@telkomsa.net> In-Reply-To: <200912232154.07830.pieter@degoeje.nl> References: <200912221736.20023.macerl@telkomsa.net> <200912230542.28400.macerl@telkomsa.net> <200912232154.07830.pieter@degoeje.nl>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 23 December 2009 22:54:07 Pieter de Goeje wrote: > On Wednesday 23 December 2009 04:42:28 Richard Mace wrote: > > Incidentally, if there is anyone out there with newer hardware who is > > interested in building the code I am talking about you can find it at: > > > > http://physics.ukzn.ac.za/~richm/courses/phys110/lennard-jones-3d.html > > > > You'll need to change the following lines in the Makefile to get it to > > successfully build under FreeBSD: > > ================================================== > > CFLAGS = -Wall -Wextra -pthread -I/usr/local/include > > -I/usr/local/include/SDL -O3 -march=native > > > > LFLAGS = -Wall -L/usr/local/lib > > > > lennardjones : $(OBJS) > > $(CC) $(LFLAGS) -o lennardjones $(OBJS) -lSDL -lSDL_gfx -lGLU > > ================================================== > > > > It would be interesting to hear feedback. (Basic controls are: up-arrow > > add heat to crystal; down-arrow cool down gas/crystal. There are a bunch > > of others -- look in main.c). You are welcome to do whatever you wish > > with my code. > > Arrr. Same problem here at startup: segfault in glXGetFBConfigAttribSGIX. A > simple test case is the following: > > pyotr@nox:~% cat test.c > int main() {} > pyotr@nox:~% cc -o test test.c -L/usr/local/lib -lSDL -lGL > pyotr@nox:~% ./test > zsh: segmentation fault (core dumped) ./test > > Then I attempted to switch the arguments around... > > pyotr@nox:~% cc -o test test.c -L/usr/local/lib -lGL -lSDL > pyotr@nox:~% ./test > pyotr@nox:~% > > Voila! (Admittedly much to my surprise ;)) > > So then I changed the Makefile to use these libraries: -lGLU -lSDL > -lSDL_gfx. Result: a perfectly working ./lennardjones. The only minor > issue is that it presented me with exactly one option: > > pyotr@nox:~/temp/lennard-jones-gas-3d% ./lennardjones > Current pixel depth: 32 > Available Modes > 0 => 3840 x 1200 > Select your preferred video mode: > > So apparently I prefer mode 0 :D. It run fine (and smooth) though. > > It is clear something goes wrong during the runtime linking process, which > this library order works around. The actual problem is still a mystery to > me. It might be worthwhile to post a bugreport on the nvnews.net FreeBSD > forum. > > Best regards, > > Pieter de Goeje > Pieter, many, many thanks for taking the time to test and diagnose this. Your solution works perfectly: ensure that libGLU PRECEDES all the SDL libraries in the link line of the Makefile. Wow! I never would have thought.... About your allowable modes being only 3840 x 1200: I had the same issue at work (Linux) where I run dual monitors (2 x 1680 x 1050). Just create an NVIDIA metamode in your xorg.conf that blanks one monitor (I do not recall the exact syntax here, but I think you need to use NULL for the one monitor). It is also useful for some games ;-) Then you can use one screen and avoid staring at the crack between your monitors during simulations. Again, many thanks. This for me is proof that I can continue to do some scientific programming (with rendering in 3D) under FreeBSD . -Richard
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200912240634.02686.macerl>