| 01:48.21 | *** join/#brlcad kintel (~kintel@unaffiliated/kintel) | |
| 02:41.57 | Notify | 03BRL-CAD:starseeker * 70018 (brlcad/trunk/src/other/openscenegraph/CMakeLists.txt brlcad/trunk/src/other/openscenegraph/CMakeModules/UtilityMacros.cmake): We don't appear to actually be using the LOCATION property for anything in our build of osg |
| 03:15.38 | Notify | 03BRL-CAD:starseeker * 70019 brlcad/trunk/src/other/PoissonRecon/CMakeLists.txt: Doesn't seem to be any reason in this file for 0053 to be set to old |
| 03:26.06 | Notify | 03BRL-CAD:starseeker * 70020 (brlcad/trunk/CMakeLists.txt brlcad/trunk/misc/svn2git/svn2git/CMakeLists.txt and 29 others): Bump to 3.0.2 across the board, remove older policy logic. Looks like the only remaining dependency on any OLD policy setting is a test in Tcl that needs 0053 set to old (quoting rules). This sets the stage for doing some experiments with the new TARGET build-time evaluation expressions, which |
| 03:26.08 | Notify | may (not sure yet) have the potential to simplify some of the build logic. |
| 03:26.10 | Notify | ... |
| 03:42.28 | Notify | 03BRL-CAD:starseeker * 70021 brlcad/trunk/src/other/tcl/CMakeLists.txt: update quoting for strstr test |
| 04:41.11 | *** join/#brlcad deep-book-gk_ (~1wm_su@159.122.132.44) | |
| 04:42.00 | *** part/#brlcad deep-book-gk_ (~1wm_su@159.122.132.44) | |
| 07:02.34 | *** join/#brlcad Caterpillar (~caterpill@unaffiliated/caterpillar) | |
| 15:20.49 | *** join/#brlcad yorik (~yorik@2804:431:f720:4929:290:f5ff:fedc:3bb2) | |
| 18:12.54 | brlcad | starseeker: answering your question from a while back, yes https://sourceforge.net/p/brlcad/code/HEAD/tree/rt%5E3/trunk/src/g3d/ has mafm's camera code |
| 18:12.55 | i5o | [ BRL-CAD / Code / [r70024] /rt^3/trunk/src/g3d ] |
| 18:14.52 | brlcad | starseeker: and looking through, it does look like it was a custom safe-to-use implementation -- coupled to ogre 3d types, but trivial to switch that to vmath types |
| 18:15.07 | brlcad | forgot how nice that all was, lots of good app structure... |
| 18:52.44 | *** topic/#brlcad by brlcad -> This channel is for BRL-CAD and open source CAx discussion! Logs @ http://infobot.rikers.org/%23brlcad/ | |
| 19:31.39 | *** join/#brlcad KimK (~Kim__@2600:8803:7a81:7400:68cc:f967:6b4c:bb5f) | |
| 20:21.20 | *** join/#brlcad Notify (~notify@104.225.5.10) | |
| 20:21.26 | Notify | 03BRL-CAD:starseeker * 70022 brlcad/trunk/misc/CMake/BRLCAD_Util.cmake: Simplify the IS_SUBPATH function logic using SUBSTRING. Not actually a significant performance improvement, but fewer lines and easier to follow. |
| 20:21.28 | Notify | 03BRL-CAD:starseeker * 70023 NIL: delete empty directories |
| 20:21.30 | Notify | 03BRL-CAD:starseeker * 70024 brlcad/trunk/misc/CMake/BRLCAD_Util.cmake: Do some refactoring of CMAKEFLAGS tracking function |
| 20:22.05 | Notify | 03BRL-CAD:starseeker * 70025 brlcad/trunk/src/tclscripts/checker/CMakeLists.txt: Add TODO to CMAKEFILES list |
| 20:22.07 | Notify | 03BRL-CAD:starseeker * 70026 (brlcad/trunk/db/CMakeLists.txt brlcad/trunk/db/nist/CMakeLists.txt and 56 others): Start preparing the ground work for a distcheck introspection that is based entirely on files - no specification of directories. This will be both to simplify the logic and to increase robustness for the non-svn distcheck case - if we have all files listed explicitly, svn is not strictly needed to do a |
| 20:22.09 | Notify | full source repo verification. For the moment this will break distcheck, but need to checkpoint before the next stage. |
| 20:22.11 | Notify | ... |
| 20:22.16 | Notify | 03BRL-CAD Wiki:Mariomeissner * 10145 /wiki/User:Mariomeissner/logs: |
| 20:22.18 | Notify | 03BRL-CAD Wiki:Mariomeissner * 10146 /wiki/User:Mariomeissner/logs: |
| 20:53.22 | *** join/#brlcad kintel (~kintel@unaffiliated/kintel) | |
| 21:03.41 | Notify | 03BRL-CAD:starseeker * 70027 (brlcad/trunk/misc/CMake/BRLCAD_Util.cmake brlcad/trunk/misc/CMake/source_archive_setup.cmake.in): This may get distcheck running again... needs more testing |
| 23:11.15 | brlcad | super relevant paper .. I love the architecture simplicity: http://tabellion.org/et/paper17/MoonRay.pdf |
| 23:11.57 | brlcad | vectorized a production tracer just like rt, from DFT to BFT |
| 23:17.01 | Stragus | When I tried making coherent ray queues on GPUs, to trace coherent bundles, I hit a wall on global memory bandwidth. And the on-chip shared memory wasn't large enough to store much |
| 23:17.22 | Stragus | Perhaps the L2 cache of CPUs can manage something better |
| 23:18.12 | brlcad | paper utilized 4-way simd, cpu |
| 23:18.32 | brlcad | well, n-way, but the intel box they were using was 4-way |
| 23:19.08 | Stragus | Right. And cache misses are far more catastrophical on CPUs than GPUs |
| 23:19.09 | brlcad | it was a production rendering system, so for them, most of the time was in the shading/texturing phase -- there is where they got the largest gains |
| 23:19.57 | Stragus | Ah yes, of course! So the performance bottleneck wasn't coherent tracing in the scene, it was the texture memory access in the ray hit callback |
| 23:20.24 | Stragus | It makes sense then. Because my experiments with coherent tracing were inconclusive regarding the performance of ray tracing itself |
| 23:22.58 | Stragus | ("coherent tracing" as in continuously rebuilding coherent bundles from incoherent rays, not primary coherent rays) |
| 23:23.03 | brlcad | yeah, their engine used embree under the hood for intersection |
| 23:24.12 | Stragus | Your bullet rays tend to be highly coherent anyway. :) For stuff like radio wave propagation, not so much |
| 23:27.52 | brlcad | just heard a fantastic talk yesterday focused on incoherent rays, completely different approach |
| 23:29.06 | Stragus | Ah? Different from buffering them and making coherent bundles? |
| 23:30.15 | brlcad | yes, because he wanted performance all the way down to single rays too (actually the focus) |
| 23:30.48 | brlcad | making a single ray trace as fast as possible |
| 23:31.26 | Stragus | When I did ambient occlusion or global illumination, I just _made_ the secondary rays coherent. Neighbor primary rays generate secondary rays with coherent vectors, with an appropriate probability "weight" |
| 23:31.41 | Stragus | So what's different about that? |
| 23:32.18 | brlcad | because with a single ray, there's no other rays to make it (more) coherent |
| 23:32.49 | brlcad | except for making it internally do things you might not think to otherwise |
| 23:33.51 | Stragus | Like testing bundles of 8 triangles in paralle, instead of 8 rays against one triangle? |
| 23:34.06 | Stragus | One ray against bundles of 8 triangles, that is |
| 23:34.24 | brlcad | sort of |
| 23:34.53 | brlcad | more like one ray, bundling the traversal(s), against triangles |
| 23:35.06 | brlcad | he used compression tricks, simd, and branchless coding |
| 23:35.30 | brlcad | very nice speedups |
| 23:35.43 | Stragus | Well, I'm both curious and skeptical |
| 23:36.12 | Stragus | Testing bundles of 8 triangles is obviously good for incoherent rays (been there, done that). But... compression? |
| 23:36.35 | brlcad | compression of the traversal |
| 23:36.36 | Stragus | Besides shifted 16 bits traversal offsets between nodes of the acceleration structure (done that too) |
| 23:36.41 | brlcad | I'll see if I can get the presentation |
| 23:37.25 | Stragus | I order the content of my raytracing graphs so that you can jump between sectors and nodes with a 16 bits << 4 offset |
| 23:37.35 | Stragus | I guess that counts as compression |
| 23:39.29 | brlcad | so instead of jumping between sectors, I think it would be kind of like evaluating multiple sectors simultaneously |
| 23:39.49 | brlcad | no way I can describe it with justice, still haven't read the paper, but the talk was very compelling, interesting |
| 23:40.51 | brlcad | branch-free traversal was a big point, no conditionals so the ray evaluates everything along the path (faster than evaluating and terminating conditionally) |
| 23:42.17 | Stragus | Hrm. You end up fetching a _lot_ of pointless memory if the ray keeps going when it could just stop |
| 23:43.03 | Stragus | Unless you mean branchless testing of the triangles from a single sector. That's all right, it's already pulled into cache |
| 23:43.33 | brlcad | no, branchless traversal (don't recall if triangle testing was also branchless) |
| 23:44.07 | Stragus | I am totally unconvinced by that |
| 23:44.42 | Stragus | If I'm looking at a wall, I want my rays to stop there. Not continue to fetch geometry from the street outside |
| 23:45.35 | brlcad | that was the trick, though -- I don't think he fetched the geometry unnecessarily, at least not beyond a "traversal bundle" which might have been a bit past |
| 23:46.11 | Stragus | Sounds like branchless testing of all triangles into a sector, or something similar |
| 23:47.57 | Stragus | I remember trying branchless triangle testing many years ago... It was slower everywhere, except on the Pentium 4 due their absurd branch misprediction penalty |
| 23:49.05 | Stragus | Although if you are testing bundles of 8 triangles for a ray, rather than 8 rays for a triangle, then you definitely want branchless |
| 23:54.29 | Stragus | It is an intereting thought to have a whole CUDA warp test 32 triangles for a single ray. The graph evaluation cost function would have to be adjusted (fatter sectors, less sectors, lower memory consumption) |
| 23:55.16 | *** join/#brlcad djkonro (~djkonro@129.0.42.239) | |
| 23:55.45 | Stragus | Sounds like a waste of processing potential during traversal though (not geometry intersection) |
| 23:56.04 | *** join/#brlcad Notify (~notify@104.225.5.10) | |