IRC log for #brlcad on 20100614

01:01.59 starseeker ``Erik: last patch to Movitz Dec 2009
01:02.02 starseeker :-/
01:08.08 CIA-40 BRL-CAD: 03brlcad * r39600 10/brlcad/trunk/NEWS: jesica provided spanish translations for lessons 4, 5, 7, 8, 10, 11, and 12 of the mged vol II tutorials.
01:09.15 ``Erik how retarded, jogre has absolutely nothing to do with ogre3d
01:22.39 *** part/#brlcad Sh1fty (~Sh1fty@unaffiliated/sh1fty)
01:43.19 *** join/#brlcad Yoshi47 (~jan@64.235.102.210)
05:58.39 *** join/#brlcad PrezKennedy (~Prez@96.31.84.96)
10:50.15 *** join/#brlcad Elrohir (~kvirc@p4FC5B0AF.dip.t-dialin.net)
10:57.26 *** join/#brlcad Stattrav (~Stattrav@117.192.143.180)
11:00.51 mafm ``Erik: hopefully they fixed the singleton implementation so a singletton pattern is a singleton pattern, unlike C++ Ogre?
11:01.13 mafm that would be ++ for them
11:06.38 *** join/#brlcad |Elrohir| (~kvirc@p4FC595DB.dip.t-dialin.net)
12:33.40 *** join/#brlcad |Elrohir| (~kvirc@p4FC595DB.dip.t-dialin.net)
12:48.01 CIA-40 BRL-CAD: 03starseeker * r39601 10/brlcad/branches/dmtogl/ (Makefile.am TODO.togl): Make a list of togl stuff to be handled before its 'ready for prime time'
13:48.40 brlcad mafm: he was messing with "jogre" .. probably hoping it had something to do with the ogre project, yet it doesn't
13:49.51 ``Erik was doing a survey of scenegraph/game engines
13:54.09 mafm ``Erik: I would go for OpenSceneGraph
14:30.26 ``Erik openscenegraph seems optimal for scientific display, cad, etc... ogre looks very game oriented, and my survey was ... game oriented :D
14:30.31 ``Erik (for a personal project)
14:31.10 ``Erik panda3d came out on top last time I did it, wanted to see if anything'd changed *shrug*
14:41.07 CIA-40 BRL-CAD: 03starseeker * r39602 10/brlcad/branches/dmtogl/src/libfb/if_togl.c: Take a hint (hopefully correctly) from the ogl framebuffer code and get rid of the globals - put everything into a struct and pass it around in ifp.
14:50.28 brlcad starseeker: nice!
14:51.06 starseeker brlcad: heh - thanks, but it doesn't do anything yet ;-)
14:52.25 starseeker is eyeing the texture code in isst_tcltk.c...
14:52.28 starseeker hmm
14:54.01 CIA-40 BRL-CAD: 03starseeker * r39603 10/brlcad/branches/dmtogl/src/libfb/if_togl.c: Well, this doesn't crash outright, so hopefully it's somewhat close to correct...
14:54.39 brlcad starseeker: was referring to the elimination of globals
14:54.55 starseeker ah, thanks :-)
14:55.00 brlcad simple change, but super good stuff for maintainability
14:55.07 starseeker that always bothered me about the Tk fb code...
14:55.23 starseeker in fact, should probably do it there too
14:55.42 starseeker (assuming we want the vanilla Tk code after togl is fully fleshed out...)
14:56.49 ``Erik hm, new stellarium out
14:57.58 ``Erik plugins, artificial satellites, improved ui, aztec stuff
15:03.16 starseeker don't suppose they went LGPL?
15:03.59 ``Erik wtffff... http://www.asylum.com/2010/06/09/phoneballs-makes-teabagging-a-snap/
15:05.05 starseeker er... hmm. "GNU GPL v2, Public Domain (The bulk of the code is GPLv2/LGPL with some sections of code with BSD-like licenses."
15:05.58 starseeker https://launchpad.net/stellarium
15:06.31 CIA-40 BRL-CAD: 03r_weiss * r39604 10/brlcad/trunk/src/conv/obj-g_new.c: adding function documentation
15:06.33 starseeker did they switch off of sourceforge??
15:09.08 starseeker humph. only a library they use is GPL
15:09.13 starseeker er LGPL rather
15:09.43 starseeker supposes he could ask nicely, but it probably wouldn't help us much anyway...
15:24.18 ``Erik "linux is just DOS with a UNIX like syntax" -- Galactic Dominator (944134)
15:24.19 ``Erik nice
15:40.00 mafm ``Erik: maybe for game oriented-ness is better, and I think that it has ports for consoles and everything
15:40.10 mafm but they are sometimes a bit hardnosed/dumb
15:40.41 mafm they took months to acknowledge patches from me fixing X-Windows/GLX problems with their code
15:40.50 mafm discussing that it was not the right solution
15:41.25 mafm I gave up, and 6 months later they said something along the lines of "OK, we applied your patch at last"
15:41.50 mafm it was something like they disabled key repetition in X
15:42.06 brlcad that's some mad function documentation
15:42.32 mafm so if your application crashed or something, the rest of the apps in your x session wouldn't have autorepeat anymore
15:42.39 brlcad fun :)
15:43.00 mafm and they didn't acknowled it as a misbehaviour/bug
15:43.19 brlcad that's not unique to them, change in almost every open source project takes a disproportionate amount of discussion and long time for a change to take effect
15:43.20 mafm it was not the leader, but some of the minions taking care of GLX port, IIRC
15:44.02 mafm well, I don't mind the discussion, Debian flamewars are epic
15:44.05 *** join/#brlcad |Elrohir| (~kvirc@p4FC595DB.dip.t-dialin.net)
15:44.25 mafm and I didn't mind it by that time, I just provided the patch and pointed the problem
15:44.40 mafm the thing is that they didn't think that this was a problem, or not their problem anyway
15:44.59 mafm when they were in effect fucking up all your X session
15:45.12 mafm (probably that's a shortcoming in X, but still...)
15:45.22 brlcad things are only quick when a) you have commit access or b) you have an open line of communication with someone that does and the change is trivial and/or completely obvious
15:45.33 mafm another patch that I provided is that, if your windows is idle/minimized/etc, -> sleep()
15:46.00 mafm so you get 0 or 1% processor usage when not viewing the application
15:46.09 brlcad hm, that could be bad for some apps, a network game for example, that needs to keep receiving events
15:46.17 brlcad at a given rate
15:46.31 mafm brlcad: that sounds like a corrupt cartel of drug dealers or something :D
15:47.00 mafm the sleep was something like 0.01s or so, not bad for anything
15:47.05 brlcad most real-time gaves have that requirement, they lock clocks together so that the game state stays synchronized
15:47.27 mafm or maybe just avoiding repainting, remember that it was GLX!
15:47.46 mafm that one was accepted much sooner or immediately, IIRC
15:47.47 brlcad the window manager should be taking care of that if it's minimized
15:47.52 mafm but that was like 5 years back...
15:48.38 mafm so? the window manager does that, but the app has to react
15:49.26 mafm if you're playing a youtube video but are in another workspace, you can just continue the playback and output audio, but no need to waste resources on updating the video window
15:49.57 brlcad presuming there's no logic being calculated in the draw portion, that's a big assumption even if it's a reasonable common way to structure the loop
15:50.27 mafm well, that's their part to know about
15:50.36 brlcad that's the apps job to know about it
15:50.39 mafm mine was to point the problem and provide a simple patch :)
15:50.49 brlcad not the underlying thing I'm drawing into
15:51.17 brlcad really depends on the specifics of the API routines in question
15:51.27 mafm well, it was the glx driver
15:51.48 mafm just to repaint the buffers or something like that
15:51.52 brlcad you mean ogre's glx driver?
15:51.57 mafm yes
15:51.58 *** join/#brlcad R0b0t1 (~Enigma@unaffiliated/r0b0t1)
15:52.22 mafm ogre has different drivers for X, windows etc... loaded as plugins or something like that
16:33.07 brlcad http://www.opendesign.com/guestfiles
16:33.21 brlcad intersting, a 225 page overview of their discoveries on the .dwg file format
17:29.30 CIA-40 BRL-CAD: 03erikgreenwald * r39605 10/brlcad/trunk/src/libicv/Makefile.am: need tcl cpp flags for bu.h
17:34.27 ``Erik hm, machine with 512 atom cpu's
18:02.30 *** join/#brlcad akafubu (~akafubu@unaffiliated/akafubu)
19:07.50 *** join/#brlcad Stattrav (~Stattrav@117.192.134.128)
19:18.16 starseeker brlcad: what's that "US Government Restricted Rights" statement amount to?
19:26.19 *** join/#brlcad akafubu (~akafubu@unaffiliated/akafubu)
19:35.22 CIA-40 BRL-CAD: 03starseeker * r39606 10/brlcad/branches/dmtogl/src/libfb/ (Makefile.am if_togl.c): For some reason, not getting a legal AGL context.
19:49.37 starseeker successfully hard crashes his Mac again
19:53.27 brlcad starseeker: what statement and what context?
19:53.57 starseeker that dwg overview
20:14.50 *** join/#brlcad Stattrav (~Stattrav@117.192.129.219)
20:44.33 CIA-40 BRL-CAD: 03starseeker * r39607 10/brlcad/branches/dmtogl/src/libfb/if_togl.c: Whoops - let's give Togl_GetToglFromObj the right info...
20:47.59 *** join/#brlcad Stattrav (~Stattrav@117.192.129.219)
21:27.45 brlcad starseeker: ah, there are a few basic categories that describe what rights the government has with respect to a given work including limited rights, unlimited rights, and restricted rights
21:30.28 brlcad gov usually aims for unlimited rights on a gov-produced work, limited rights on a non-gov (i.e. contractor) works, and restricted rights on non-gov software
21:31.04 starseeker nods - so does that preclude us using that document as a basis for a dwg importer?
21:33.46 brlcad it's SORT OF like, if this were copyrights, the difference between being the copyright owner (unlimited rights), being granted a usage license by a copyright holder (limited rights, like how you can use a movie DVD), or being granted an irrevocable shared license/copyright (restricted rights)
21:36.34 brlcad so with regards to most software, telling the gov they have restricted rights basically lets them know that they don't have exclusive rights and they don't have useless rights
21:36.51 brlcad i.e., they get to behave like people do wrt the copyright
21:36.57 starseeker nods
21:36.58 starseeker got it
21:37.29 brlcad at least that's a loose explanation
21:37.58 brlcad it doesn't affect our (or ARL) from using it
21:38.14 starseeker scowls at Togl_SwapBuffers
21:38.21 starseeker wow what a performance hog
21:38.42 brlcad restricted rights in that context basically just means ARL can't claim it as theirs (exclusively), e.g., can't try to stop others from using it
21:39.00 starseeker cool
21:39.34 brlcad if they had limited rights, they could use it internally but not necessarily redistribute it, derive off of it, etc
21:39.50 brlcad if they had unlimited, they could go after how everyone else uses it
21:41.02 starseeker has been in open source too long - the idea of going after how someone else uses something is relatively foreign to his thinking ;-)
21:43.08 starseeker brlcad: well, with ``Erik
21:43.18 starseeker 's help we now have a functioning togl framebuffer
21:46.04 starseeker albeit a very slow one
21:46.32 starseeker looks like both isst and the togl framebuffer may benefit from the timing code
21:52.15 CIA-40 BRL-CAD: 03r_weiss * r39608 10/brlcad/trunk/src/conv/obj-g_new.c: documenting functions, some cleanup
21:55.58 starseeker brlcad: is BzTime.h the place to start in bzflag for the timing code?
21:59.09 starseeker or rather, common/BzTime.cxx?
22:02.49 starseeker winces... I wonder if semaphores are going to be a performance issue when redoing this code in libbu...
22:07.44 ``Erik SwapBuffers wont' be the "performance hog", it's basically just saying "hey, uh, card? all that stuff I sent over for you to do? yeah, uh, I'm gonna wait until it's all done."
22:08.31 starseeker nods - so that's why CPU use is piddling on easy raytraces, and still maxed out on the hard ones
22:09.17 ``Erik 's why I was talking about moving the draw code out of the function, parallelize the gpu and cpu work
22:09.39 ``Erik the glFlush toglSwapBuffers() calls is serializing things
22:09.40 starseeker time for bu_time and associated functions :-)
22:10.18 starseeker ``Erik: that might be possible, but my initial attempt wasn't very happy - I think there might be an issue due to our "driving" things from the C side
22:10.29 ``Erik to what end? if timesincelastdrawn > magicnumber draw ?
22:10.40 starseeker nods
22:11.36 ``Erik would # of lines be an adequate and simpler compromise?
22:11.54 starseeker possibly, but that wouldn't handle isst
22:12.31 ``Erik isst/tcl is driven by the togl event loop which does what you attempted to do earlier
22:12.52 ``Erik isst/gtk and isst/sdl are just so chock full of awesomesauce, it's irrelevant :D
22:13.58 starseeker so, what are you advising?
22:14.54 ``Erik I'm advising an evening of simpsons, family guy, and kicking my feet up :D
22:15.03 starseeker lol
22:15.14 starseeker fair enough - I need to get to the gym anyhow
22:15.22 ``Erik I don't think the issues you're seeing in the fb are terribly relevant to the isst stuff *shrug* but I could be mistaken
22:16.19 ``Erik if we can guarantee threading in the fb, I'd save have an opengl interactor thread that paints when the context is dirty, otherwise just hangs out
22:17.00 ``Erik if not, the cheap&easy solution might be if(!(nframes&0xf)){nframes=0; draw();} nframes++;
22:17.02 starseeker ``Erik: as it stands, I don't think we assume that?
22:17.40 ``Erik or suck it up and be slow on trivial raytraces
22:17.43 starseeker threading is in librt, not libfb (I think...)
22:18.02 starseeker what's wrong with if timesincelastdrawn > magicnumber draw ?
22:18.11 ``Erik I think librt used to be set up so it could be used in environments that do not support threading
22:19.06 ``Erik well, I suppose if you want to do the math, you can do some gettimeofday() stuff *shrug* um, the sdl isst has that in an older revision, I switched to SDL_GetTicks() though
22:19.53 starseeker nods - that's what I was looking at with the BzFlag timing code - using either a version of that logic, SDL_GetTicks stuff, or some hybrid in a libbu routine
22:19.56 ``Erik just be careful, fbsd, solaris, and windows can provide microsecond accuracy, linux does it in 10
22:20.09 ``Erik 10microsecond increments
22:20.16 ``Erik so if you care about timing that fine grained, ...
22:20.18 starseeker brlcad and I were discussing that earlier - apparently they've had to handle such things for BzFlag
22:20.35 ``Erik bz might do scary things like use rtdsc or something O.o
22:21.06 ``Erik rdtsc rather
22:21.24 starseeker don't see it here at least: http://bzflag.svn.sourceforge.net/viewvc/bzflag/trunk/bzflag/src/common/BzTime.cxx?revision=21083&view=markup
22:25.01 ``Erik ah, gettimeofday(), is the call frequency being throttled somehow, mebbe vsync is on in the ogl display?
22:26.31 starseeker dunno, haven't dug that deep yet
22:27.09 ``Erik looks like how sdl gets time, too heh :)
22:27.14 ``Erik on unix, anyways
22:27.29 starseeker which is what you're using in isst/sdl?
22:27.39 ``Erik yup
22:27.50 starseeker not a major performance impact?
22:27.59 ``Erik doesn't port to windows, so I went with the sdl variant *shrug*
22:28.06 ``Erik well, it's floating point math and a system call
22:28.31 ``Erik but scanlines are pretty low cost
22:28.34 starseeker still should be quicker than waiting for SwapBuffer though...
22:29.23 ``Erik (still serializes it, it just stops progress once every X microseconds instead of once every Y microseconds... parallelizing it would be better resource utilization)
22:30.03 starseeker ``Erik: but how much of a todo would parallelizing it be? mightn't that require altering rt, mged, and other such clients?
22:30.37 starseeker (that was one of the things I was headed towards having to deal with with TclThreads and tk framebuffer...)
22:30.46 starseeker sounded a bit scary
22:31.50 starseeker as far as I know, we don't use threading very much outside of librt itself, although I could be wrong
22:32.15 ``Erik does librt itself do threading? or is that all in the rt's?
22:32.36 starseeker good question... it might be in the rt's
22:32.59 ``Erik cut.c db_tree.c and many.c
22:33.23 ``Erik rt/view.c and rt/worker.c use it, too
22:33.26 ``Erik bu_parallel is the func...
22:33.52 ``Erik one of these days, I'll make adrt use it
22:34.02 starseeker yeah, view.c, worker.c, and viewmlt.c
22:34.12 ``Erik wasn't gonna count viewmlt.c
22:34.18 ``Erik it doesn't really do too much :D
22:34.29 starseeker there are a couple calls to it in librt
22:34.36 ``Erik <-- points where he noted them
22:37.19 ``Erik http://brlcad.org/~erik/bdayskelly.jpg
22:37.23 starseeker yeah, it's not used much (and not at all in libfb)
22:37.47 starseeker or libdm for that matter
22:39.25 starseeker sounds like a whiteboard discussion
22:40.14 starseeker well, the timing thing may be fairly straightforward and a useful crutch until the more radical multithreaded design discussions can be hashed out
22:40.32 ``Erik yeh *shrug*
22:40.57 ``Erik bz and sdl seem to use the same thing, my old game stuff looks the same *shrug*
22:41.31 starseeker well, bz is certainly interactive enough (and your isst/sdl looks pretty awesome too)
22:42.07 starseeker (note to self - bug Bob to make is tree widget in Archer a packable stand-alone megawidget)
22:43.07 starseeker alrightie, gym
23:10.34 brlcad the critical bits for stability, since it uses gettimeofday, are ensuring we don't go back in time and affixing a processor affinity
23:11.53 ``Erik well, in this certain situation, affinity shouldn't matter and going backwards falls out in the equation
23:11.58 brlcad that and windows timing is particularly tricky
23:12.12 brlcad using the qpc is riddled with pot holes
23:12.27 ``Erik if( (nowtime() - lasttime) > WAITTIME ) { lasttime = nowtime(); draw(); }
23:12.45 ``Erik not like we're doing a physics sim in it
23:12.54 brlcad going backwards was surprisingly hard to detect -- there were some CPUs that actually had an unstable gettimeofday() during normal use
23:13.31 brlcad some that would throttle clock ticks and slow the system clock down during power management
23:13.42 ``Erik heh, going backwards sends a kernel scheduler into all sorts of fits, fun seeing the warning logs in bsd :D
23:13.52 brlcad linux 2.6 and amd64 was a problem child for a while, iirc
23:14.42 brlcad a sudden ntp change can also occur causing a one-in-a-billion style bug to detect without the negative time compensation
23:15.18 brlcad fun stuff
23:16.24 ``Erik still shouldn't be an issue for this application, provided we have something at the very end that forces a draw to cope with the possible condition of the next requested render being way after the last scanline is posted
23:16.53 brlcad starseeker: bz's timer was originally non-mutexed if you want a simplified version
23:17.12 brlcad starseeker: but they're basically equivalent to BU_SEMSYSCALL protections
23:18.37 brlcad it'd be an issue if you did "if( (nowtime() - lasttime) > WAITTIME ) { lasttime = nowtime(); draw(); }"
23:18.52 brlcad nowtime would be negative and would stall the draw until it catches up
23:19.51 ``Erik yeah, thus the flush at the end *shrug* and negative? I was thinking unsigned counting from epoch
23:21.06 brlcad "nowtime() - lasttime" would be negative as lasttime would be (unsigned)1234, now would be back in time at (unsigned)123, making it perpetually < WAITTIME until nowtime catches up
23:21.34 brlcad flush would help, but it'd still potentially stall in bizarre odd ways
23:21.59 brlcad easy to account for, especially with something like bz's timer -- be surprised if sdl doesn't have something similar
23:22.12 brlcad (in their timer code)
23:22.33 ``Erik the flush at the very end would be necessary anyways, just in case the last scanline didn't happen to trigger the draw
23:23.14 ``Erik yeah, sdl does, they break things up by platform into different files instead of #if stuff
23:23.20 ``Erik they also support more platforms :)
23:23.38 ``Erik dunno if we care about consoles and qnx and those, though
23:25.13 brlcad "more platforms" .. such as?
23:25.24 brlcad ah, qnx and consoles, gotcha
23:26.01 brlcad I'd trust bz's windows code over sdl's
23:26.11 brlcad the nix code is a wash, pretty simple
23:26.38 ``Erik http://hg.libsdl.org/SDL/file/f67139f6d87f/src/timer
23:26.48 ``Erik the bz code, sdl code, my ancient crap, and everyone elses is the same
23:26.49 ``Erik :D
23:27.11 ``Erik gettimeofday(); do some math to pack the #.
23:28.00 ``Erik hm, beos has system_time(void); nice
23:35.54 brlcad er, doesn't look the same to me
23:36.15 brlcad their GetTicks is basically bz's getEpochMicroseconds()
23:37.06 brlcad bz's "get now time" is getCurrent() which is what does the critical logic
23:38.01 brlcad hm, no time compensation in sdl, though they do have a nice delay func and alarm registers

Generated by irclog2html.pl Modified by Tim Riker to work with infobot.