Blender Git Loki

Blender Git "blender-v2.78c-release" branch commits.

Page: 12 / 24

January 20, 2017, 10:25 (GMT)
Fix T49630: Cycles: Swapped shader and bake kernels

The problem here was, as the title says, that the two kernels were swapped.
Since shader evaluation is only used for building the samling map when World MIS is enabled, rendering without it would still work fine, although baking also was broken.
January 20, 2017, 10:25 (GMT)
Cycles: Fix another OpenCL logging issue

Previously an error message would be printed whenever the OpenCL build produced output.
However, some frameworks seem to print extra information even if the build succeeded, so now the actual returned error is checked as well.
When --debug-cycles is activated, the build output will always be printed, otherwise it only gets printed if there was an error.
January 20, 2017, 10:25 (GMT)
Cycles: Use const reference for register variables in non-OpenCL code

This is something tested by @LazyDodo and suggested by Maxym to make
MSVC happier.
January 20, 2017, 10:25 (GMT)
Cycles: OpenCL 3d textures support.

Note that volume rendering is not supported yet, this is a step towards that.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D2299
January 20, 2017, 10:25 (GMT)
Cycles: Improve OpenCL kernel compilation logging

The previous refactor changed the code to use a separate logging mechanism to support multithreaded compilation.
However, since that's not supported by any frameworks yes, it just resulted in bad logging behaviour.
So, this commit changes the logging to go diectly to stdout/stderr once again by default.
January 20, 2017, 10:25 (GMT)
Fix build error with WITH_CYCLES_NATIVE_ONLY and recent AVX2 changes.
January 20, 2017, 10:25 (GMT)
Cycles: Enable SSE options of math module for AVX2 kernels

Currently this does not give measurable difference, but is required
ground work for some upcoming further optimization of AVX2 kernels.
January 20, 2017, 10:25 (GMT)
Cycles: Split device_opencl.cpp into multiple files for easier maintenance

There are no user-visible changes, just some internal restructuring.

Differential Revision: https://developer.blender.org/D2231
January 20, 2017, 10:25 (GMT)
Cycles: Use more SSE intrinsics for float3 type

This gives about 5% speedup on AVX2 kernels (other kernels still
have SSE disabled for math operations) and this solves the slowdown
of koro scene mention in the previous commit.

The title says it all actually. This commit also contains
changes to pass float3 as const reference in affected functions.

This should make MSVC happier without breaking OpenCL because it's
only done in areas which are ifdef-ed for non-OpenCL.

Another patch based on inspiration from Maxym Dmytrychenko, thanks!
January 20, 2017, 10:25 (GMT)
Cycles: Add new avxf vectorized data type

Based on existing ssef data type and to my knowledge it's also what happens in
Embree nowadays.

Inspired by Maxym Dmytrychenko and required for the upcoming triangle
intersection commit.

Hopefully the copyright message is correct.
January 20, 2017, 10:25 (GMT)
[Windows/Cycles/Clang] Fix compilation error with clang-cl on windows
January 20, 2017, 10:25 (GMT)
Cycles: Implement AVX2 version of triangle_intersect

This commit basically vectorizes existing code using AVX2 instructions
(without modifying algorithm itself). This gives quite nice speedups:

BMW: -8%
Classroom: -5%
Cat: -5%
Koro: +1%
Barcelona: -8%

That's on Linux machine, reported performance improvement on Windows
goes up to 20%.

Not currently sure why Koro is somewhat slower because it mainly uses
curve intersection tests, could be a time noise? Or osmething with the
cache utilization perhaps? In any case speedup in other scenes makes
me thinking that current state is acceptable for initial implementation.

This is again inspired by Maxym Dmytrychenko.
January 20, 2017, 10:25 (GMT)
Cycles: Cleanup, style
January 20, 2017, 10:25 (GMT)
Cycles: implement partial constant folding for exponentiation.

This is also an important mathematical operation that can be folded
if it is known that one argument is a certain constant. For colors
the operation is provided as a Gamma node.

The SVM Gamma node needs a small fix to make it follow the 0 ^ 0 == 1
rule, same as the Power node, or the Gamma node itself in OSL mode.

Reviewers: #cycles

Differential Revision: https://developer.blender.org/D2263
January 20, 2017, 10:25 (GMT)
Cycles: Make code more uniform across two versions of shadow_blocked()

Just to make it easier to research ways of possible code de-duplication.
January 20, 2017, 10:25 (GMT)
Cycles: Remove out of date comment
January 20, 2017, 10:25 (GMT)
Cycles: Cleanup, indentation
January 20, 2017, 10:25 (GMT)
Cycles: Cleanup, whitespace
January 20, 2017, 10:25 (GMT)
Cycles: Use correct light sampling PDF for MIS calculation with Branched Path Tracing

The light sampling functions calculate light sampling PDF for the case that the light has been randomly selected out of all lights.
However, since BPT handles lamps and meshlights separately, this isn't the case. So, to avoid a wrong result, the code just included the 0.5 factor in the throughput.

In theory, however, the correction should be made to the sampling probability, which needs to be doubled. Now, for the regular calculation, that's no real difference since the throughput is divided by the pdf.
However, it does matter for the MIS calculation - it's unbiased both ways, but including the factor in the PDF instead of the throughput should give slightly better results.

Reviewers: sergey, brecht, dingto, juicyfruit

Differential Revision: https://developer.blender.org/D2258
January 20, 2017, 10:25 (GMT)
Cycles: Avoid conversion from bool to uint
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021