IRC log for #brlcad on 20150716

00:00.05 vasc that's gonna be a problem with all these object types. but i'll think of a way
00:00.17 Stragus Fetching as a texture is faster than direct memory access on some hardware, Nvidia Kepler for example
00:00.31 Stragus (2.5 times faster on Kepler, no kidding)
00:00.32 vasc oh it is?
00:00.38 vasc interesting
00:00.55 vasc i thought they had changed the L2 cache so it wasn't a problem anymore
00:01.17 vasc then again
00:01.25 vasc it should be doing streaming loads.
00:01.25 vasc hm
00:01.26 Stragus Later Kepler with CUDA compute 3.5 has ldg() to fetch read-only data through the texture cache, but compute 3.0 must "manually" use the texture cache
00:01.43 Stragus Doesn't matter, texture cache is always faster on CUDA compute 3.0
00:02.03 vasc so i have to use that ldg() syscall?
00:02.12 Stragus That only works on compute 3.5
00:02.20 Stragus If you want good performance on 3.0, you need texture fetches
00:02.35 Stragus And that's a CUDA thing, no idea if it's available on OpenCL
00:02.46 vasc oh right
00:02.51 vasc well
00:02.57 vasc the opencl texture support is kinda crappy
00:03.12 Stragus So... there are many good reasons to try to pack everything in a single big chunk of memory
00:03.17 Notify 03BRL-CAD Wiki:Bhollister * 9019 /wiki/MGED_CMD_nmg: /* Example(s) */
00:03.45 vasc i think i know what i'll do
00:03.56 vasc i'll first compute the size of each solid in the solid list
00:04.08 vasc and then i'll do a prefix sum to figure out the offset of each solid
00:04.16 Stragus Sounds reasonable
00:04.49 vasc the question is where to store the solid type data
00:05.20 Stragus In the same big chunk of memory
00:05.26 vasc there are 44 solid types
00:05.28 vasc so
00:05.37 Stragus So? It's just data, doesn't matter what type it is
00:05.40 vasc that's like 6 bits
00:05.50 vasc well
00:06.02 vasc i could stuff it in the solid ids
00:06.14 vasc and then i would have like 18 bits
00:06.20 vasc oh no
00:06.22 vasc 28 bits
00:06.29 vasc 26
00:06.32 vasc geez
00:06.32 Stragus scratches his head
00:06.34 Stragus Right, 26 :p
00:06.57 vasc 67 million solids
00:07.02 vasc i think that should be enough
00:08.07 Notify 03BRL-CAD Wiki:Bhollister * 9020 /wiki/User:Bhollister/DevLogJuly2015: /* Wed, July 15, 2015 */
00:08.35 vasc if we need more i'll just switch to 64 bits
00:08.48 vasc and then we get 58 bits
00:08.53 Stragus No, just separate the two values then
00:09.05 Stragus GPU hardware is better at managing 32 bits values than 64 bits
00:09.15 vasc well
00:09.23 vasc i'm supposed to use 64-bit doubles and everything
00:09.29 Stragus Ouch.
00:09.31 vasc really. its a design requirement
00:09.32 vasc yep
00:09.34 vasc its baaaad
00:09.53 Stragus I understand why they need it, but it's not going to be very fast
00:10.03 vasc i'll try to make it a compile option
00:10.05 Stragus You could support both
00:10.14 Stragus Or a runtime option, better
00:10.20 bhollister starseeker: updated design docs. need input on newly proposed subcommands before proceeding with their impl.
00:11.03 vasc that's gonna be a lot harder
00:11.05 vasc although...
00:11.25 vasc the thing about opencl is that you don't run binaries
00:11.37 vasc you pass source code to the driver and it compiles it on program load
00:11.53 Stragus There you go
00:12.20 vasc yeah i can just pass a compiler flag to the graphics driver saying which type i want
00:13.06 Stragus Yes well, your big-chunk-of-memory data must be of the right type
00:13.28 Stragus In my raytracer, I compile the same files many, many times with different #if stuff
00:13.39 Stragus To produce a bunch of pipelines optimized for different needs
00:14.17 vasc AoS it is
00:14.43 vasc SoA is just too much of a problem with all these data types
00:14.50 Stragus o.O
00:15.01 Stragus Come on, you are going to absolutely destroy performance
00:15.06 vasc not really
00:15.13 Stragus Yes really
00:15.17 vasc its never going to be good
00:15.29 vasc because you can have different solid types
00:15.32 Stragus It's never going to be good, so it can be much worse and it doesn't matter? :p
00:15.50 Stragus That's not a problem if the rays are coherent, they will hit the same solids and be processed simultaneously
00:15.51 vasc fine. tell me how to implement SoA with different solid types
00:16.12 vasc spheres, ellipsoids, torus, triangle meshes, etc
00:16.13 Stragus You can even be clever with ballot() call for the wrap to "vote" on the best execution path
00:16.15 vasc all in the same cell
00:16.34 Stragus Sure, so you make sure all rays process the same solids coherently, simultaneously
00:16.41 vasc ah
00:17.12 vasc i can leave that to the next guy
00:17.18 vasc :-)
00:17.19 vasc well
00:17.24 Stragus That next guy will have to rewrite your code to fix this! :)
00:17.29 vasc yep
00:17.42 vasc well
00:18.08 vasc the thing is last time i read about it the coherent grid raytracing isn't faster than the non-coherent one on a gpu
00:18.23 vasc so...
00:18.30 Stragus The next guy will have to rewrite everything, all the data layout *and* the code, plus wrap coherency considerations and so on
00:18.36 vasc nah
00:18.37 Stragus Whatever you read, it is totally wrong
00:18.43 Stragus wrote a CUDA raytracer
00:18.46 vasc as long as its cache coherent its ok
00:19.12 vasc if the data is packed decently enough
00:19.16 vasc oh now i remembered
00:19.21 vasc i'm using spatial subdivision
00:19.28 vasc i'll have solids in more than one cell
00:19.30 vasc hmmmm
00:20.18 vasc so i can only do a coarse sort and hope its coherent
00:20.18 Stragus Coherent raytracing is like 10x faster than incoherent rays
00:20.30 vasc or i duplicate data and use more mem
00:20.39 vasc not on a gpu
00:20.42 Stragus Yes, on a GPU
00:20.45 vasc at least its what people told me
00:21.03 Stragus Seriously, I wrote a CUDA raytracer, it was presented at a Nvidia conference, 1 billion rays per second on decent geometry
00:21.11 vasc i know
00:21.20 Stragus I have benchmarked all Nvidia hardware a lot
00:21.22 vasc i talked with some UT Austin guys in 2009 and they told me that
00:22.06 vasc its the SIMT model
00:22.10 vasc i guess
00:22.20 vasc all the threads will bang the same data anyway
00:22.28 Stragus AMD hardware is similar, except a little less flexible than Nvidia's
00:23.01 Stragus What you want is all rays to process the same solid simultaneously if they are going to hit it
00:23.11 vasc but they already do that more or less
00:23.17 vasc or will anyway
00:23.38 vasc if the traversal space is similar
00:23.59 Stragus Simutaleously? Not one ray processing it first because it reached an intersected cell first, followed by 25 more rays, then some 5 rays, and finally a last ray?
00:24.03 vasc if it isn't the coherent grid thing doesn't help a lot either
00:24.05 Stragus Your grid can break apart the bundle
00:24.14 vasc yeah that's what will happen
00:24.19 vasc well
00:24.30 vasc later. much later.
00:24.33 vasc that's v2.0 stuff.
00:24.43 Stragus Okay. But just plan ahead for this
00:25.06 vasc its like i said i think a bvh would be better
00:25.18 vasc so thinking about coherent grids probably a waste of time
00:25.51 Stragus Coherent grids can be faster if the geometry or objects are somehow uniformly distributed... which is not a common case
00:25.54 vasc lets just focus on eliminating dynamic memory allocations and gotos, and crap like that for now
00:25.59 Stragus :) Okay
00:26.17 vasc if its really simple it can be changed later
00:26.33 vasc right now this thing is a nightmare to port to opencl
00:26.57 Stragus It's certainly fine to start with something quick and dirty, but just plan ahead so the transition to something better will go smoothly
00:27.09 vasc yep
00:27.22 vasc unfortunately the quick and dirty is still taking a bloody long time
00:27.30 vasc because there's a looooot of things to do
00:27.33 Stragus :) Yes, I can imagine that
00:28.50 vasc the csg boolean thing
00:28.57 vasc simplifying that will be interesting...
00:29.01 vasc a headache
00:29.15 vasc last time i looked at it the code was branching like hell with gotos everywhere
00:30.12 Stragus I assume you know it's important to keep the flow as synchroneous as possible on GPU
00:30.24 Stragus A lot more computations is better than branches
00:30.34 vasc yeah
00:30.42 vasc the question is how to do that to rt_boolweave
00:31.30 Stragus 's eyes hurt
00:31.40 Stragus I sympathize.
00:33.00 vasc figuring out a way without dynamic memory allocation would be a start
00:33.26 vasc that thing is all branches and dynamic double linked lists
00:33.56 vasc and its called on the buffered dynamic linked list of multi-hit intersection for every single cell we intersect
00:35.22 Stragus You should clarify with brlcad if you must somehow buffer all hits and return them to CPU code, or if a GPU inlined callback would be sufficient
00:36.07 Stragus The first one is messy and slow, and that's a lot of data to constantly copy from GPU to CPU
00:36.28 vasc yes
00:36.36 vasc well they prefer to keep 100% compat with everything
00:36.51 vasc so my guess its that they prefer the first option but its gonna be bad on the long run
00:37.07 Stragus They'll need new code to efficiently use a GPU raytracer
00:37.34 vasc i thought first i could render on the gpu and cpu and somehow merge results of the whole render
00:37.42 vasc but with this multi-hit thing its more tricky
00:38.12 vasc like render the gpu accel solids on the gpu and the ones that aren't ported to the gpu would be rendered on the cpu
00:38.28 vasc if it was single-hit it would be easy
00:38.29 Stragus That doesn't sound good
00:39.16 vasc you would just need the depth, object, material, at each pixel
00:39.25 vasc on cpu and gpu
00:39.32 vasc and then you figured out which was in front
00:39.37 vasc for each pixel
00:40.44 vasc its not like i can call cpu code inside the gpu
00:40.49 vasc unless i pause it all the time
00:40.50 vasc hmm
00:41.01 Stragus That sounds like much more trouble than just porting all solid types
00:41.14 vasc there's like 44
00:41.15 vasc of them
00:41.22 vasc i'm gonna port like i dunno 8
00:41.56 Stragus Many of them will be very similar
00:42.22 vasc yeah but there's no time before gsoc ends
00:43.16 Stragus I would port 8 and leave it to someone else to complete
00:43.23 Stragus That cpu-gpu mix is really asking for trouble
00:43.27 vasc i also think its the best option yes
00:44.01 vasc i'll need to talk about it again with sean
00:44.11 Stragus nods
00:46.10 vasc thinking about it some more a bvh would simplify some things
00:46.36 vasc if i knew the leaves all had the same max number of objects i could still buffer the hits on each cell without using dynamic memory allocation
00:47.24 Stragus Why the leaves? Wouldn't it be the maximum count of intersections in the whole scene?
00:48.38 vasc i won't claim that i get how the csg stuff works well
00:48.49 Stragus I would probably do something like... reserve 8 hits per ray, and each ray can "request" additional chunks of 8 hits when running out of hit space, through some atomics in a giant shared buffer for all hits
00:48.50 vasc but it seems to call rt_booleanweave for every cell it intersects
00:49.12 Stragus ... giant shared buffer for all rays*
00:49.38 vasc but yeah it probably just does that
00:50.24 vasc can't you incrementally do the csg?
00:50.37 vasc probably need to think this over
00:50.42 Stragus You probably know more about CSG than I do :/
00:51.16 vasc i don't know that much
00:51.28 vasc i only know its boolean ops in ray tracing
00:51.43 vasc i've seen brute force csg ray tracers
00:51.45 vasc that's about it
00:51.49 vasc but this one ain't brute force
00:54.06 vasc at the time i started this sean suggested thinking about other similar algorithms to see if i could do this differently
01:00.16 Stragus That sounds like good advice to me
01:00.34 Stragus The algorithm's design is probably 30 years old
01:03.43 Notify 03BRL-CAD Wiki:Terry.e.wen * 9021 /wiki/User:Terry.e.wen/log:
01:09.05 *** join/#brlcad vasc__ (~vasc@bl7-122-190.dsl.telepac.pt)
01:21.48 vasc__ night
02:59.44 Notify 03BRL-CAD:starseeker * 65655 brlcad/trunk/src/libged/nmg_cmface.c: Apply patch #390 from Brad Hollister, removing unused tmp variable.
03:05.39 Notify 03BRL-CAD:starseeker * 65656 brlcad/trunk/src/libged/nmg_cmface.c: Apply patch #390 version 2 from Brad Hollister
04:33.06 *** join/#brlcad infobot (ibot@69-58-76-73.ut.vivintwireless.net)
04:33.06 *** topic/#brlcad is BRL-CAD || http://brlcad.org || logs: http://ibot.rikers.org/%23brlcad/ || Congrats to all GCI 2014 winners Peter & Marc! || Congratulations to our 12 GSoC students! || Don't ask if someone is here, just ask your questions and wait for a response. ;-)
05:08.53 *** join/#brlcad gurwinder (3b599fa2@gateway/web/freenode/ip.59.89.159.162)
05:16.13 *** join/#brlcad milinda (~milinda@112.134.13.69)
05:46.36 *** join/#brlcad milinda (~milinda@124.43.140.87)
06:05.20 *** join/#brlcad milinda (~milinda@124.43.181.242)
06:47.31 *** join/#brlcad milinda (~milinda@124.43.92.201)
07:05.15 *** join/#brlcad milinda (~milinda@112.135.69.88)
07:36.11 *** join/#brlcad milinda (~milinda@112.134.225.229)
07:37.00 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
08:33.36 Notify 03BRL-CAD Wiki:MeShubham99 * 9022 /wiki/User:MeShubham99/GSoc15/log_developmen: /* Week 8 */
09:15.38 *** join/#brlcad tess (~tess@122.173.205.133)
10:04.49 *** join/#brlcad infobot (ibot@69-58-76-73.ut.vivintwireless.net)
10:04.49 *** topic/#brlcad is BRL-CAD || http://brlcad.org || logs: http://ibot.rikers.org/%23brlcad/ || Congrats to all GCI 2014 winners Peter & Marc! || Congratulations to our 12 GSoC students! || Don't ask if someone is here, just ask your questions and wait for a response. ;-)
10:12.52 *** join/#brlcad gurwinder (75c7660a@gateway/web/freenode/ip.117.199.102.10)
10:31.54 *** join/#brlcad tess (~tess@122.173.205.133)
11:20.01 *** join/#brlcad milinda (~milinda@112.134.236.34)
11:28.20 *** join/#brlcad milinda (~milinda@112.134.236.34)
11:53.40 *** join/#brlcad Stragus (~alexis@modemcable090.29-19-135.mc.videotron.ca)
12:44.23 *** join/#brlcad teepee-- (bc5c2134@gateway/web/freenode/ip.188.92.33.52)
12:49.15 Notify 03BRL-CAD:ejno * 65657 brlcad/trunk/src/libgcv/conv/fastgen4/fastgen4_write.cpp: remove unnecessary try block
13:53.55 *** join/#brlcad milinda (~milinda@124.43.66.153)
14:40.25 Notify 03BRL-CAD:brlcad * 65658 brlcad/trunk/TODO: some more thoughts on extending libbu's parallelism functionality
15:00.03 *** join/#brlcad konrado (~konro@154.70.99.62)
15:03.28 *** join/#brlcad tess_ (~tess@122.173.205.133)
15:23.56 Notify 03BRL-CAD Wiki:MeShubham99 * 9023 /wiki/User:MeShubham99/GSoc15/log_developmen: /* Week 8 */
15:25.39 *** join/#brlcad milinda (~milinda@124.43.185.227)
16:23.06 *** join/#brlcad milinda (~milinda@124.43.185.227)
16:54.58 *** join/#brlcad sofat (~sofat@202.164.45.204)
17:02.54 brlcad Stragus: vasc's problem (regarding solving all problems at once) is that he has a very strict near-term deadline, and has to have made some useful progress by the end .. AND then pass that work on to someone else to continue
17:03.12 brlcad so he doesn't really have that luxury
17:11.16 Stragus Ah right, I'm still not too familiar with the whole GSoC concept
17:12.46 Stragus By the way, I assume you know that if someone is going to port the raytracer to OpenCL, you really need to change the interface and adapt all the code using the raytracer...
17:12.59 Stragus It's really not designed for parallel hardware
17:21.33 brlcad Stragus: also the opencl implementat that calls a kernel on each solid intersection that you seemed surprised by had absolutely nothing to do with performance (it was only a validation of the calculations being correct for a specific primitive converted, full stop)
17:22.23 Stragus Right, makes sense
17:22.58 milinda brlcad: Can you please tell me what exactly poly2tri_CDT does ? I mean as a summary ?
17:27.17 brlcad "20:35 < Stragus> You should clarify with brlcad if you must somehow buffer all hits and return them to CPU code, or if a GPU inlined callback would be sufficient" <-- well duh, we want both :)
17:27.28 brlcad is still reading backlog fwiw, not current discussion
17:28.58 *** join/#brlcad vasc (~VASC@bl7-122-190.dsl.telepac.pt)
17:30.27 brlcad all caught up now
17:31.17 brlcad Stragus: yep, definitely know that the interface will need to eventually be adapted -- we'll also need a (slow) compatible interface first though so we can validate the computations
17:31.43 brlcad but the goal indeed is to change the method so that analysis applications are also acceleratable and getting updates via callback or in batches or both
17:33.16 Notify 03BRL-CAD Wiki:MilindaFernando * 9024 /wiki/User:MilindaFernando/gsoc2015_devlog: /* STEP Viewer Project Development Log */
17:33.24 brlcad the purpose of the single kernel per solid intersection was indeed just to validate correct calculations, and indeed the first conversion was demonstrably different (i.e., wrong) due to precision/tolerance mismatches
17:34.02 brlcad milinda: hmmm
17:34.24 brlcad looks
17:35.38 milinda brlcad: can we please chat I need several things to figure out :)
17:35.53 Stragus brlcad: Right. I assume you know that any OpenCL "callback" would have to be built in the same "kernel" (sorry, CUDA speak) as the OpenCL raytracing code
17:36.04 brlcad it's doing constrained delaunay triangulation using the poly2tri library
17:36.19 brlcad basically, turning the nurbs surface into triangles
17:36.35 Stragus In my CUDA raytracer, the user would provide a "callback" and it would build the whole raytracing pipeline with that function inlined directly deep in the code
17:37.13 brlcad Stragus: I figured something like that would be necessary for optimal performance
17:37.33 brlcad given how the projects are so varied and disjoint, that tight coupling might not be practical
17:37.43 Stragus Well, it's not just optimal performance: the other way involves buffering an arbitrary number of hits per ray, and that's really messy
17:37.44 brlcad in which case we'll probably pass back bundles of results
17:38.00 brlcad which they can process however they like, hopefully coherenty
17:39.03 milinda brlcad: Assume we have surface triangles for an geometry. But How can we generate a solid from them ? I mean can you explain me how surface triangles would help to visualize the geometry as a solid in Open GL?
17:39.05 Stragus I would suggest designing the OpenCL code so that any code can build custom pipelines with a provided hit-handling callback
17:39.23 Stragus Other code could rely on a default pipeline built with hit-handling code that somehow buffers up everything
17:39.41 milinda brlcad: Using surface triangles what we get a mesh for the geometry. Is this correct ?
17:39.42 brlcad there's more than a dozen external groups that integrate librt for ray intersections for various analytic purposes .. there's no way they will all rework their interface so some will be slow .. some will likely make full accommodations, and others partial
17:39.50 brlcad but remember, some of them aren't even in C
17:40.43 brlcad some callers are coming through java bindings, some through fortran
17:41.36 brlcad milinda: I'm not sure I understand your terminology
17:42.01 brlcad milinda: you don't need to generate a solid -- you need triangles you can pass to opengl
17:42.11 brlcad getting triangles for each surface does exactly that
17:42.51 milinda brlcad: so the final visualized shape would be a triangular mesh of the shape. ?
17:43.08 brlcad yes
17:43.36 milinda brlcad: are we going to stop with that no solid geometry in the viewer ?
17:44.01 brlcad milinda: what does "solid geometry in the viewer" mean to you?
17:44.08 brlcad because that terminology is not right
17:44.14 milinda brlcad: I mean color shaded shape ?
17:44.52 brlcad you color and shade the triangles in opengl
17:45.00 brlcad those triangles make a shape
17:46.18 brlcad ih8sum3r: I did not, the fibers component failed to compile
17:46.20 milinda brlcad: so all the cad programs which does render the geometry as a "visually solid" does it by getting the triangular mesh and color triangles and rt it?
17:46.57 brlcad ih8sum3r: looks like relatively simple portability errors, but "npm install fibers" worked
17:47.02 brlcad it installed 1.0.6
17:47.34 brlcad milinda: they get a trinagular mesh, color the triangles, and send it to opengl
17:47.53 brlcad milinda: do you have an install of brl-cad handy?
17:47.56 ih8sum3r brlcad: Same error on my side. Okay I will try with 1.0.6 version.
17:48.11 vasc howdy
17:49.38 brlcad hi vasc
17:49.43 brlcad read your nice long convo yesterday
17:49.51 brlcad good thoughts all around
17:50.12 vasc i still need to do a bunch of things before i start working on the boolean weaving though
17:50.25 brlcad the main limiting factor here is time and wanting something incrementally useful *before* gsoc is over (it's already crazy risky enough)
17:50.34 milinda brlcad: No Should I install it ?
17:51.18 brlcad milinda: if you going to be calling into brl-cad libs, aren't having those libs installed required? :)
17:52.20 milinda brlcad: yes I need to install them :)
17:53.28 milinda brlcad: So as the next step what should I do is a write a function which takes a ON_Brep structure and browse all the surface triangles ? Correct ?
17:54.04 milinda brlcad: then we can get a tringluar mesh at the viewer. :)
17:54.42 brlcad well once you do that, you can find a simple 3dm model online (e.g., from grabcad.com), convert it with "3dm-g", then open that .g file with our "mged" application, and run commands that let you visualize ("tops" will tell you names to use, and "draw -m1 somename" will display that nurbs as shaded triangles)
17:55.07 brlcad milinda: an ON_Brep intrinsically does not have surface triangles
17:55.10 brlcad they have to be calculated
17:55.46 brlcad that is exactly what we do (in rt_brep_plot_poly and the CDT library calls)
17:56.41 milinda brlcad: you mean I should Install the libraries and call them instead of writing new code to do that. ?
17:57.50 brlcad milinda: I think it took one of our devs about 4-6 months to calculate the triangles in a useful manner
17:58.31 brlcad it's easily a gsoc project all of it's own just to do that...
17:58.53 brlcad so yeah, that's why in your original proposal, it was suggested that you leverage our work
17:59.17 brlcad now whether you call a library or extract the code of signficance doesn't really matter (so long as attribution and legalities are correct)
18:00.30 vasc so you just sample a bunch of points on the surface and triangulate that?
18:02.46 ih8sum3r brlcad: I guess fibers are not installed properly, I'm getting this error : Error: Cannot find module 'fibers'
18:14.19 *** join/#brlcad milinda (~milinda@124.43.95.17)
18:14.24 brlcad vasc: for triangulation, that's all you can do
18:14.43 brlcad there are other modes of visualization, like just rendering the surface edge splines
18:15.18 brlcad but the surface itself doesn't have anything intrinsic that can be sent to opengl, you have to evaluate surface polylines, points, triangles, etc
18:17.34 brlcad an older slower method involved converting the nurbs surfaces into a set of bezier patches, and triangulating those patches for visualization
18:17.48 brlcad some CAD systems still use that indirect method
18:18.59 brlcad triangulating bezier patches is also still just sampling points on the surface so you can make a mesh, it's just a much simpler evaluation than directly evaluating the complex nurbs surface (high high order equations)
18:19.19 vasc i see. it seemed kinda of brute force so i thought that someone had come up with something better.
18:23.15 brlcad polylines is arguably better, but opengl doesn't have support for shaded rendering of polyline strips
18:23.36 brlcad GLU has support for rendering NURBS, but it basically does the old bezier patch method
18:24.26 brlcad you can do adaptive sampling of the NURBS, and that's about as good as it gets for sending something to opengl
18:25.04 vasc i'm gonna have a masters student working on NURBS next year so i was kind of interest
18:25.05 vasc ed
18:29.32 vasc i keep hearing that the latest opengl has tesselation support so i thought there would be some better way of doing it or something
18:38.12 starseeker growls at sourceforge...
18:38.23 vasc switch to github then
18:38.54 starseeker brlcad-as-git-checkout is.... rather large. we have a lot of history
18:39.21 vasc more than the linux kernel?
18:39.26 vasc oh right
18:39.28 vasc 1970s
18:39.41 vasc how far back does the repo go anyway?
18:39.46 starseeker 1983
18:40.39 starseeker I've done a git conversion of our svn repo (even have the process quasi-automated) and it clocks in at 1.6 gigs
18:40.40 vasc even old than gcc then
18:41.09 vasc oh i see
18:41.18 vasc github says they want repos to be below 1GB
18:41.54 starseeker http://blog.openhub.net/2012/10/oldies-but-goodies-seven-projects-still-rocking-open-source/
18:42.30 Stragus vasc, OpenGL has "tesselation shaders", and nobody uses them, just like geometry shaders
18:42.45 ``Erik http://brlcad.org/brlcad.git is daily conversion/mirror
18:43.01 Stragus It's too slow and limited. Compute shaders replace all of this mess
18:43.41 starseeker we could probably do some tricks like one project per src/other folder to spread the pain out
18:44.45 starseeker hasn't tried building our history without src/other and misc/tools, but probably smaller
18:45.19 starseeker is now curious...
18:45.58 vasc oh right the dependencies
18:46.27 vasc those are probably pretty big since have tcl/tk in there
18:46.46 starseeker and a subset of boost, at some point in the history
18:50.33 starseeker tries a "quick and dirty" approach... to do this right would require some care...
18:54.31 vasc https://rtyley.github.io/bfg-repo-cleaner/
18:55.48 vasc maybe that will help
18:56.26 starseeker vasc: the problem is stripping out large commits from older history would result in broken checkouts for those revisions
18:56.40 starseeker it's occasionally necessary to test older revisions
18:57.09 starseeker that would be good for checked in garbage, but when the large bits are actually *needed* we're worse off...
18:58.37 starseeker might conceivably be acceptable for things that never worked right to begin with, but even that's a bit dicy...
18:59.22 vasc so you need this one http://git-scm.com/docs/git-filter-branch
19:00.57 starseeker probably, plus a *lot* of detailed history study to see what is in, what's out and what things look like for various options. Probably a lot of testing as well
19:01.12 vasc another choice i guess is to break the repo at some point in time and archive that keeping on the repo only a shortened history
19:01.25 starseeker don't let brlcad hear you suggest that ;-)
19:02.13 vasc self-hosting then :-)
19:02.19 starseeker heh
19:02.20 vasc bbl
19:03.11 *** join/#brlcad milinda (~milinda@124.43.75.66)
19:05.59 starseeker bah - filtering out other only saved 150 megs
19:06.07 starseeker wonders if he did something wrong...
19:07.23 starseeker looks right...
19:07.26 starseeker huh
19:08.18 starseeker wonders if there are some commit size analysis tools available somewhere...
19:08.48 starseeker and... of course https://code.google.com/p/gitinspector/
19:11.51 starseeker ah http://serverfault.com/questions/36784/search-for-large-checkins-in-a-subversion-repository
19:15.54 brlcad yeah, I'm not at all keen on stripping or contorting the history for the sake of the tool/repo/size/whatever
19:18.03 starseeker suspects BRL-CAD on github is probably a practical no-go
19:18.43 brlcad I'm certainly not opposed, but I wouldn't switch on a whim
19:19.14 starseeker we'd basically have to explain the situation to them and get an OK, and even then they may not be too keen on 2 gig forks...
19:20.45 brlcad I would, but I'd doubt size would be a problem
19:21.00 brlcad it's real history and there's no large files clogging it up
19:21.03 brlcad just a ton of history
19:21.29 starseeker couple of our hacking book images would be a problem
19:22.04 brlcad large ==> >100MB
19:22.34 brlcad I don't think we have much at >10MB
19:22.39 starseeker ah, OK
19:22.50 starseeker thought a couple of the high quality renders were bigger
19:23.04 starseeker just my not-so-hot internet connection
19:23.54 *** join/#brlcad milinda (~milinda@124.43.202.141)
19:23.55 brlcad they got checked in?
19:24.17 starseeker yeah - we added the hacking book to the doc build (or at least I thought we did)
19:25.47 brlcad I know the book was added, but I didn't think the images were that big
19:25.52 starseeker they aren't
19:25.58 brlcad the biggest was probably teapot at 4k x 4k but in png format
19:26.20 starseeker biggest is 12M
19:26.27 starseeker sphflace2_cc
19:26.47 starseeker teh M1A1 is second at 8, rest are below 4
19:27.06 starseeker s/teh/the
19:29.41 brlcad okay, makes sense
19:30.06 starseeker ah, cool - that svn size-of-revision script looks like it worked
19:30.16 brlcad that sounds entirely reasonable to me
19:35.02 starseeker interesting - if I'm reading this right, even the largest merges are around 90 megs
19:35.09 brlcad looks like our biggest commit is r31506
19:35.16 brlcad looks like a commit that added ogre
19:35.30 Stragus Ogre? The 3D engine?
19:35.37 starseeker is that bigger than r23577?
19:35.47 brlcad Stragus: yep
19:36.02 Stragus That's a weird dependency to have
19:36.21 starseeker Stragus: we're a CAD system - why's a 3d engine a weird dep?
19:36.41 brlcad Stragus: experimental GUI work looking at using it for the CAD visuals
19:37.21 Stragus Because a CAD system doesn't need a gaming-oriented 3D engine
19:38.23 starseeker Stragus: fwiw, we're also checking out OpenSceneGraph
19:38.31 Stragus once also wrote an OpenGL-rendered GUI, but creating the widgets became tiresome... http://www.rayforce.net/glui000.png
19:38.51 brlcad it's not really any more gaming-oriented than openscenegraph, OSG, VTK, and a handful of others
19:39.46 starseeker Stragus: I've had half an eye on this for a long while hoping it would reach a usable point: https://github.com/zhanggyb/BlendInt
19:41.07 Stragus I haven't heard of that one
19:41.08 brlcad an engine is desirable for some pretty basic aspects like asset management and scene graph management
19:41.37 brlcad writing the code to do that well is really a distraction to our goals, especially when they do it more than adequate for our needs
19:41.52 Stragus My GL gui was quite usable, just still missing a bunch of widgets (that screenshot is also old)
19:42.20 *** join/#brlcad milinda (~milinda@124.43.188.93)
19:42.31 starseeker Stragus: we've been looking at using Qt-in-GL, sorta like stellarium
19:44.01 starseeker there are actually some reasonably impressive demos with qml, but IIRC the primary widgets remain something of a challenge
19:44.02 brlcad for GUI, I have many in depth strong opinions and am quite picky about usability characteristics -- at least for our 3rd generation interface
19:44.38 starseeker that's why starseeker considers qged 2.5gen ;-)
19:45.36 *** join/#brlcad gurwinder (3b5b7739@gateway/web/freenode/ip.59.91.119.57)
19:45.44 brlcad why not embrace it?
19:46.11 brlcad what's the .5 missing?
19:46.41 starseeker satisfying the in depth strong opinions and usability characteristics ;-)
19:47.02 starseeker would be content with cleaner-archer-not-needing-Tk as a start
19:47.28 Stragus has this habit of always writing everything from scratch, no dependencies
19:48.14 brlcad Stragus: yeah, I get really pissed off at interfaces like that from a usability perspective... I admire the work, but the usability is usually just .. terrible
19:48.22 Notify 03BRL-CAD Wiki:59.91.119.57 * 9025 /wiki/User:Gurwinder_Singh/GSoc15/log_developmen:
19:48.27 Stragus Writing an OpenGL engine isn't that much work anyway, I wrote that some time ago: http://www.rayforce.net/newproject024.png
19:48.28 brlcad love the appearance of custom, though, that alone can be a saving grace
19:48.32 starseeker figures a real 3rd gen interface will be a fairly significant depature from the mged/archer paradigms
19:48.56 brlcad doesn't
19:49.28 brlcad significant in the sense that the new one should be explorable, yes
19:49.44 brlcad pretty and easier to learn, yes
19:50.16 Stragus Eheh brlcad, you want widgets that look and behave like the standard, right.
19:50.20 brlcad functionality, though, no change really
19:50.28 brlcad Stragus: nope
19:50.54 brlcad behavior to a limited extent (key bindings, some presentation patterns)
19:52.01 brlcad appearance, definitely not
19:52.44 Stragus Okay, so what bothers you about the usability of different-looking GUIs?
19:52.46 starseeker brlcad: well, for example, the original ogre/qt work was focused on Qt widgets in the 3d scene - that's something I didn't envision for qged. I'd be content to use osgQt to get an OpenSceneGraph window that gets passed to libdm (after upgrading libdm's API...)
19:53.09 brlcad cursed with having studied interface design measurement and usability theory -- there are some fundamental issues regarding design patterns, familiarity, efficiency, discoverability
19:54.09 Stragus That depends entirely on how the programmer writes his code using the GUI, not the GUI itself
19:54.22 brlcad starseeker: now you're talking about "how", not "what" .. I frankly don't care much how as long as it doesn't get in the way of maintainability and longer-term development
19:55.08 starseeker fair enough
19:55.15 brlcad the issue is what usability patterns are made available, what steps the user takes to do some action
19:55.39 brlcad it's very user-centric, which becomes the dev's problem
19:55.48 starseeker so from that standpoint, whether Qt elements are available in the 3D scene or not is a detail?
19:56.26 brlcad you don't just pop up a text field where a value needs to be input, which I could code up manually or delegate to a widget library and leave to whatever limitations/complexity that implies
19:58.00 brlcad if the user is given a text field, it better behave to platform expectations -- which means they get navigation key-bindings, cursor controls, probably even basic field checking (e.g., spell checking, bounds checks, etc)
19:58.37 brlcad Stragus: that's a good case point example -- did you input a text input field?
19:59.16 Stragus Yes, with support for tab, alt+tab, arrow keys, shift+arrow, ctrl+arrow
19:59.51 brlcad ctrl-a, ctrl-e, ctrl-w, ...
20:00.21 brlcad those little nitpick issues seem inconsequential, but play a MAJOR role in long term usability and adoption
20:00.28 Stragus Only the first one of these, but yes, you demand standard behavior
20:00.33 brlcad did you spell check the words on the fly
20:00.35 Stragus Oh I agree
20:00.39 Stragus No :p
20:00.47 brlcad that's just the tip
20:01.30 brlcad that's we're leveraging something like Qt because valuable because they either have invested the effort already or provide all the necessary hooks
20:01.31 Stragus I pretty much wrote that GUI system for my own needs as learning an existing GUI seemed... boring
20:01.39 Stragus Indeed
20:01.40 brlcad nods
20:02.00 brlcad it can be boring, but that's where the fun is in stylistic presentation
20:02.12 brlcad there is some amazing research work in GUI stylization
20:03.09 Stragus finds it more fun to optimize GPU texture caching of all GUI "images" with clever area invalidation, minimized scissoring, batching and other tricks
20:03.17 Stragus But yes, I certainlt understand your points
20:03.20 Stragus certainly*
20:05.51 brlcad starseeker: probably the biggest piece I see required for gen3 is a fully pervasive on-demand command functionality
20:05.54 brlcad (not the command console, that's a separate issue/feature)
20:09.43 *** join/#brlcad Izakey (~Isaac@41.205.22.26)
20:10.21 brlcad Izakey: still have that link handy? maybe starseeker can help...
20:11.27 Izakey brlcad, I tried rectifying the libpng today and it blew away my entire GUI
20:11.56 brlcad ouch!
20:12.02 Izakey I'm accessing this channel using a mobile device. Let me find the link however
20:12.11 brlcad sounds like .. you did something wrong :/
20:14.05 starseeker O.o
20:15.42 Izakey Yeah, libpng was at 12. I installed,deleted and reinstalled libpng16.so.16 or so and my computer just powered itself off
20:16.13 Izakey starseeker, this is the link https://paste.kde.org/pab6nw3ai
20:17.10 Izakey A man without Xserver needs all the help he can get ;)
20:17.15 Stragus libpng is not binary compatible between major versions
20:17.46 Stragus Reinstall libpng 1.2, or rebuild everything that depends on it
20:19.17 Izakey Thanks Stragus.
20:20.40 Stragus isn't fond of that whole Unix philosophy of software linking tons of libraries instead of including the dependencies at build time
20:20.55 brlcad starseeker: if you want some GUI homework to look into, try playing with Kupfer! or Synapse on Linux -- they incorporate some relevant usability concepts based on research
20:21.26 brlcad somewhat similar to quicksilver on mac os x
20:21.51 brlcad or even spotlight, but that interface is only half-there
20:22.41 brlcad ah, Gnome Do might be similar too
20:22.51 brlcad but i've just found that one now
20:22.52 Izakey will not advise playing with GUI after today's experience
20:23.09 brlcad "GNOME Do is inspired by Quicksilver" ... so apparently yes
20:23.29 brlcad Izakey: you should be able to restore your GUI just by restoring libpng, no?
20:23.40 brlcad what'd you do to it?
20:23.45 Stragus Izakey, how did you end up replacing the installed libpng?
20:24.05 Stragus Gentoo builds libpng12.so, libpng13.so, libpng14.so, etc. to avoid that kind of problem
20:24.07 Izakey I used rpm to install the .rpm file
20:24.36 brlcad just installing wouldn't have easily broken something unless an RPM overwrote a symlink
20:24.54 brlcad would have had to overwrite/delete a symlink or delete the old lib
20:24.57 Izakey My entire Fedora is bash - from login to what have you
20:25.14 brlcad Izakey: also, needed the entire build log, including the cmake output
20:26.23 brlcad prefers linux without an X server :)
20:26.34 Izakey The cmake build log from yesterday ? brlcad
20:26.47 brlcad I never got to see it because the url was blocked
20:26.55 brlcad I can probably get to it now
20:27.55 Izakey thinks Linux without Xserver can really suck
20:28.39 Stragus spent 2 days in text mode when his GPU fried from too much CUDA, a month ago
20:28.54 Stragus You get used to it, eh
20:31.20 Izakey fetches yesterday's build log
20:34.58 starseeker Izakey: did you try -DBRLCAD_ENABLE_ALL=ON ?
20:35.52 Izakey Yes starseeker ?
20:36.00 starseeker and you still got that error?
20:36.23 Izakey Yes starseeker
20:36.38 starseeker somethings wrong then - it's pulling the wrong libpng
20:36.43 starseeker it should be using a locally built copy
20:37.01 starseeker ditto for zlib
20:37.03 ``Erik heh, console 4evah!
20:37.18 starseeker yeah, need full log for this one
20:38.56 Stragus I frequently kill X and switch to raw console when I want precise benchmarks
20:43.27 ``Erik http://elfga.com/~erik/tmp/ss20150716164155.png is what my mac lappie usually looks like (sometimes I fullscreen terminal just to be cool, but usually it's just maximized) :D
20:45.19 Izakey console 4evah ! ``Erik
20:46.02 Stragus I can relate: http://www.rayforce.net/desktop000.png
20:48.19 ``Erik still using bx?
20:48.56 Stragus Yup
20:50.39 Izakey brlcad, I've given you access to the Google Doc.
20:50.44 ``Erik I got sick of fighting the logging facility in bx, irssi did things 'mostly' right out of the box, so I was willing to spend the extra resources on it *shrug* :)
20:56.03 *** join/#brlcad vasc (~vasc@bl7-122-190.dsl.telepac.pt)
20:56.22 vasc man sf.net is still down
20:59.03 *** join/#brlcad Yash (3b5f267d@gateway/web/cgi-irc/kiwiirc.com/ip.59.95.38.125)
21:06.16 *** join/#brlcad konrado (~konro@41.205.22.37)
21:06.25 Yash hi
21:09.04 *** join/#brlcad Yash (3b5f267d@gateway/web/cgi-irc/kiwiirc.com/ip.59.95.38.125)
21:09.57 Notify 03BRL-CAD Wiki:Konrado DJ * 9026 /wiki/User:Konrado_DJ/GSoc2015/logs: /* 16 JULY 2015 */
21:10.56 Notify 03BRL-CAD Wiki:Konrado DJ * 9027 /wiki/User:Konrado_DJ/GSoc2015/logs: /* 16 JULY 2015 */
21:25.06 vasc hello Yash
21:25.58 Yash hi
22:20.41 *** join/#brlcad vasc (~vasc@bl7-122-190.dsl.telepac.pt)
22:27.47 Notify 03BRL-CAD Wiki:Bhollister * 9028 /wiki/MGED_CMD_nmg:
22:37.37 Notify 03BRL-CAD Wiki:Bhollister * 9029 /wiki/MGED_CMD_nmg: /* Example(s) */
22:39.16 Notify 03BRL-CAD Wiki:Bhollister * 9030 /wiki/MGED_CMD_nmg: /* Proposed subcommands */
22:42.11 Notify 03BRL-CAD Wiki:Bhollister * 9031 /wiki/MGED_CMD_nmg: /* Example(s) */
22:42.47 *** join/#brlcad ih8sum3r (~ih8sum3r@122.173.205.133)
23:00.15 Notify 03BRL-CAD Wiki:202.164.45.204 * 9032 /wiki/User:Hiteshsofat/GSoc15/log_developmen:
23:05.06 Notify 03BRL-CAD Wiki:Bhollister * 9033 /wiki/User:Bhollister/DevLogJuly2015: /* Thurs, July 16, 2015 */
23:06.20 Notify 03BRL-CAD Wiki:Bhollister * 9034 /wiki/User:Bhollister/DevLogJuly2015: /* Mon, July 20, 2015: Start of Week 9 (of 14) */

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