June 17, 2016, 12:05 (GMT) |
Cycles: Hook up remaining intersectors to SSE2 regular traversal Now we are passing all regression tests on RegularBVH + SSE2. |
June 17, 2016, 11:23 (GMT) |
Cycles: Hook up intersection SSE2 code for shadow regular BVH |
June 17, 2016, 11:06 (GMT) |
Cycles: Fixes for regular BVH traversal and unaligned nodes - Support proper packing - Fix array offsets in intersectors |
June 17, 2016, 10:15 (GMT) |
Merge branch 'master' into cycles_bvh |
June 16, 2016, 09:26 (GMT) |
Cycles: Hook up proper node intersection function to regular BVH camera rays traversal |
June 15, 2016, 15:55 (GMT) |
Cycles: Prepare some utility funcitons for regular BVH traversal The idea is to use utility function for node intersection, just like it's done in QBVH. Would make it easier to choose between aligned and unaligned node intersection here. |
June 15, 2016, 14:58 (GMT) |
Cycles: Fix naming and merge node intersections into a single file |
June 15, 2016, 14:44 (GMT) |
Cycles: Some fixes to avoid crashes with regular BVH Still only will only on scenes without hair. |
June 15, 2016, 12:02 (GMT) |
Cycles: Enable unaligned traversal for SSS and volume functions Currently this traversal functions will always think there are unaligned nodes in the scene and check visibility flags. This might not be fully ideal, but on another hand adding more traversal functions might: (a) Bump stack memory size on Maxwell GPUs (see the discussion on the Cycles mailing list) (b) Not give real speed advantages. So for now let's use simpler way and gather some benchmarks. |
June 15, 2016, 11:45 (GMT) |
Cycles: Revert unwanted debug-only change |
June 15, 2016, 11:24 (GMT) |
Merge remote-tracking branch 'origin/master' into cycles_bvh |
June 15, 2016, 11:23 (GMT) |
Cycles: Fix over-allocation of storage for unaligned nodes |
June 15, 2016, 10:16 (GMT) |
Cycles: Fix shadow rays were ignoring unaligned nodes A residue from development. |
June 15, 2016, 09:39 (GMT) |
Cycles: Small optimization of unaligned heuristic |
June 15, 2016, 09:33 (GMT) |
Cycles: Fix node refitting It'll fall back to identity transform since otherwise it gets too expensive to re-calculate all heuristics. |
June 15, 2016, 08:49 (GMT) |
Cycles: Fix crash when true displacement is used Not fastest code from device_update() timing point of view, but keeps memory usage same small as final renders. At this point we are back to full test suit pass when QBVH is used. |
June 15, 2016, 08:02 (GMT) |
Cycles: Adopt all QBVH traversal to unaligned nodes |
June 14, 2016, 21:35 (GMT) |
Cycles: Some quick fixes to previous commit |
June 14, 2016, 21:08 (GMT) |
Cycles: First proof of concept aligned and unaligned nodes living together This commit was mainly focused on making it so QBVH builder delivers proper packed array with interleaved aligned and unaligned nodes. It also contains tweaks to traversal code to check it all works. Packing seems to work fine for QBVH now (RegularBVH is simply untouched by this commit, it'll come later). Traversal of camera rays also works fine, but there are definitely some tricks to be done in the traversal code: - Need to avoid calculations of some variables which are only needed for unaligned nodes (such as dir4 for example). Should be easy task of ifdef-ing some values. - Avoid some extra visibility flag checks, for example when deciding which intersector to use and when fetching addresses of children. Moving children info next to visibility flags will avoid this extra bit check, but will cause different cache load. Would need to benchmark what's better for us, or at least need to ifdef it for non-curve functions. Curve intersectors would need to be renamed to unaligned btw. NOTE: shadow, SSS, volume traversal codes are disabled currently, meaning there's no way scene will be rendered correct. |
June 14, 2016, 15:35 (GMT) |
Cycles: Move forward with heterogeneous BVH nodes - Made it so unaligned flag gets incoded into visibility flag, so no need to bump size of regular BVH nodes. - Made sure visibility flags are always in front of bounding box, so it can be read first and then decision made about what intersection code to use. - Simplified node packing a bit, avoid duplicated code. - Fixed some bugs in nodes refit. |
|