Blender Git Commits

Blender Git "cycles_bvh" branch commits.

Page: 2 / 3

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.
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021