Commit Graph

782 Commits

Author SHA1 Message Date
Campbell Barton
733e6c0b1d Merge branch 'master' into blender2.8 2018-10-09 08:46:00 +11:00
Lukas Stockner
a0cc7bd961 Cycles: Implement vectorized NLM kernels for faster CPU denoising 2018-10-06 21:49:54 +02:00
Campbell Barton
0ad183bf02 Merge branch 'master' into blender2.8 2018-09-19 12:05:08 +10:00
Campbell Barton
4c918efd44 Cleanup: trailing space 2018-09-19 12:04:34 +10:00
Sergey Sharybin
5aa5066c3b Merge branch 'master' into blender2.8 2018-09-18 11:49:08 +02:00
Ray Molenkamp
16b8d223b7 Cycles: Fix usage of AVX2 intrinsics in AVX kernel
While building the AVX kernel, util_avxf.h/avxb.h were using some AVX2 intrinsics,
these were never called, so it wasn't a run-time issue, but the intrinsics headers
on centos excluded the AVX2 prototypes when building the AVX kernel causing build errors.

This commit cleans up the improper usage of the AVX2 intrinsics and provides AVX
fallback implementations for future use.

Differential Revision: https://developer.blender.org/D3696
2018-09-17 16:27:13 -06:00
Bastien Montagne
91e87f5cf2 Merge branch 'master' into blender2.8 2018-09-17 19:40:39 +02:00
Sergey Sharybin
284cd1375b Cycles: Cleanup, remove dead code 2018-09-17 18:07:22 +02:00
Sergey Sharybin
81f1f9c85e Cycles: Remove unused malformed function
This isn't really possible to do the shuffle which was attempted to do.

While it's possible to achieve expected behavior, the function needs to
be rewritten. Since it's not used anyway, it's simpler to remove it for
now.
2018-09-17 18:05:32 +02:00
Sergey Sharybin
82e729d986 Cycles: Use proper mask for vectrorized boolean print 2018-09-17 18:02:01 +02:00
Sergey Sharybin
af21053087 Merge branch 'master' into blender2.8 2018-08-30 17:40:06 +02:00
Sergey Sharybin
94ea566b5a Cycles: Cleanup, whitespace after keyword 2018-08-30 17:34:11 +02:00
Brecht Van Lommel
caa7f749ed Merge branch 'master' into blender2.8 2018-08-30 13:59:34 +02:00
Sergey Sharybin
8c3d2e549c Cycles: Fix detection of CPU brand string on 32 bit platforms
The assembler template was backing up and restoring ebx, which is
fair enough. However, this did not prevent compiler for putting
result variables to ebx. This was causing data corruption.

In order to prevent this easiest solution is to list ebx in clobbers
for the assembly.
2018-08-30 12:52:27 +02:00
Brecht Van Lommel
a1b38a635e Cleanup: license header formatting. 2018-08-30 12:09:47 +02:00
Campbell Barton
76a9752be2 Cleanup: trailing space 2018-08-30 01:05:13 +10:00
Campbell Barton
927cf918fa Cleanup: trailing space 2018-08-30 01:02:44 +10:00
Sergey Sharybin
31278eb4bc Merge branch 'master' into blender2.8 2018-08-29 16:09:59 +02:00
Sergey Sharybin
73f2056052 Cycles: Add BVH8 and packeted triangle intersection
This is an initial implementation of BVH8 optimization structure
and packated triangle intersection. The aim is to get faster ray
to scene intersection checks.

    Scene                BVH4      BVH8
barbershop_interior    10:24.94   10:10.74
bmw27                  02:41.25   02:38.83
classroom              08:16.49   07:56.15
fishy_cat              04:24.56   04:17.29
koro                   06:03.06   06:01.45
pavillon_barcelona     09:21.26   09:02.98
victor                 23:39.65   22:53.71

As memory goes, peak usage raises by about 4.7% in a complex
scenes.

Note that BVH8 is disabled when using OSL, this is because OSL
kernel does not get per-microarchitecture optimizations and
hence always considers BVH3 is used.

Original BVH8 patch from Anton Gavrikov.
Batched triangles intersection from Victoria Zhislina.
Extra work and tests and fixes from Maxym Dmytrychenko.
2018-08-29 15:03:09 +02:00
Brecht Van Lommel
871b7ba892 Merge branch 'master' into blender2.8 2018-08-28 19:15:08 +02:00
Sergey Sharybin
658a9c6cf5 Cycles: Cleanup, style
I wouldn't mind changing style to have space after keyword, but there was
no official code style change proposed.
2018-08-24 14:36:18 +02:00
Sergey Sharybin
b70f85f2aa Merge branch 'master' into blender2.8 2018-08-09 16:03:09 +02:00
fclem
a241286859 Cycles: Util, add to_string() with some helper
Currently unused, but will allow to convert unknown
argument type to a string for reporting and such.
2018-08-09 15:51:23 +02:00
Campbell Barton
d3c387d605 Merge branch 'master' into blender2.8 2018-08-02 17:52:22 +10:00
Brecht Van Lommel
e50a3dd4c4 Fix T56197: Cycles OpenCL build error after recent changes. 2018-08-01 19:44:32 +02:00
Brecht Van Lommel
2e2e7aff7c Merge branch 'master' into blender2.8 2018-07-30 18:44:18 +02:00
Brecht Van Lommel
885cc4cf9a Build: require C11/C++11 for all operating systems in master.
This is in preparation of upgrading our library dependencies, some of which
need C++11. We already use C++11 in blender2.8 and for Windows and macOS, so
this just affects Linux.

On many distributions this will not require any changes, on some
install_deps.sh will need to be run again to rebuild libraries.

Differential Revision: https://developer.blender.org/D3568
2018-07-30 17:12:24 +02:00
Ray Molenkamp
cdce3b71df Merge remote-tracking branch 'origin/master' into blender2.8 2018-07-22 16:03:46 -06:00
Brecht Van Lommel
a6f750dd41 Fix T54455, T56053, T55564: Cycles OpenCL build error after recent changes. 2018-07-20 19:10:45 +02:00
Brecht Van Lommel
3d67819a17 Merge branch 'master' into blender2.8 2018-07-18 14:13:16 +02:00
L. E. Segovia
5078b9d2d0 Cycles: add Principled Hair BSDF.
This is a physically-based, easy-to-use shader for rendering hair and fur,
with controls for melanin, roughness and randomization.

Based on the paper "A Practical and Controllable Hair and Fur Model for
Production Path Tracing".

Implemented by Leonardo E. Segovia and Lukas Stockner, part of Google
Summer of Code 2018.
2018-07-18 13:59:06 +02:00
Brecht Van Lommel
de2f1c64fe Merge branch 'master' into blender2.8 2018-07-16 14:36:59 +02:00
Brecht Van Lommel
edbb2d2279 Fix Cycles incorrect resize and CMYK conversion of uint16/half images. 2018-07-15 18:38:09 +02:00
Brecht Van Lommel
680994643c Merge branch 'master' into blender2.8 2018-07-15 00:54:12 +02:00
charlie
83a4e1aaf9 Cycles: add voronoi features and distance settings from Blender.
Features to get the 2nd, 3rd, 4th closest point instead of the closest, and
various distance metrics. No viewport/Eevee support yet.

Patch by Michel Anders, Charlie Jolly and Brecht Van Lommel.

Differential Revision: https://developer.blender.org/D3503
2018-07-15 00:45:42 +02:00
Brecht Van Lommel
4697604331 Cleanup: use float3 SSE instead of ssef for voronoi texture. 2018-07-14 23:58:20 +02:00
Campbell Barton
de777ad9e6 Merge branch 'master' into blender2.8 2018-07-06 10:18:52 +02:00
Campbell Barton
1daa20ad9f Cleanup: strip trailing space for cycles 2018-07-06 10:17:58 +02:00
Campbell Barton
8dff538989 Merge branch 'master' into blender2.8 2018-07-05 22:46:04 +02:00
Stefan Werner
4d00e95ee3 Cycles: Adding native support for UINT16 textures.
Textures in 16 bit integer format are sometimes used for displacement, bump and normal maps and can be exported by tools like Substance Painter. Without this patch, Cycles would promote those textures to single precision floating point, causing them to take up twice as much memory as needed.

Reviewers: #cycles, brecht, sergey

Reviewed By: #cycles, brecht, sergey

Subscribers: sergey, dingto, #cycles

Tags: #cycles

Differential Revision: https://developer.blender.org/D3523
2018-07-05 13:53:34 +02:00
Campbell Barton
c2814f5b28 Merge branch 'master' into blender2.8 2018-07-02 18:18:16 +02:00
Sergey Sharybin
e5767eaad1 Cycles: Fix missing curve hair when building with GCC-8 in release mode
Reshuffle cast intrinsics to make XOR to operate on __m128i rather
than on __m128.

Hopefully this does not affect performance.
2018-07-02 15:16:14 +02:00
Sybren A. Stüvel
b4c01aca30 Merge branch 'master' into blender2.8 2018-06-26 17:42:33 +02:00
Stefan Werner
73eb1bfd55 Revert "Turned off clang warnings in third party includes."
This reverts commit d53093953f.
2018-06-26 10:26:56 +02:00
Campbell Barton
ea339dc62c Merge branch 'master' into blender2.8 2018-06-26 09:34:13 +02:00
Stefan Werner
d53093953f Turned off clang warnings in third party includes.
The latest clang compiler (at least the one in Xcode 9.4.1) warns about the register keyword and macro expansions using defined().
Since these warnings come from third party code, we can't address them directly in Blender. Silencing them via #pramgas will
at least keep the warnings during a build down to the ones that are relevant to Blender code.
2018-06-25 23:02:01 +02:00
Lukas Stockner
27de412ca8 Merge remote-tracking branch 'origin/master' into blender2.8 2018-06-14 22:54:42 +02:00
Lukas Stockner
3ee606621c Cycles: Query XYZ to/from Scene Linear conversion from OCIO instead of assuming sRGB
I've limited it to just the RGB<->XYZ stuff for now, correct image handling is the next step.

Reviewers: brecht, sergey

Differential Revision: https://developer.blender.org/D3478
2018-06-14 22:21:37 +02:00
Sergey Sharybin
b763c34e80 Cycles: Cleanup, silence strict compiler warning
There is one legit place in the code where memcpy was used as an
optimization trick. Was needed for older version of GCC, but now
it should be re-evaluated and checked if it still helps to have
that trick.

In other places it's somewhat lazy programming to zero out all
object members. That is absolutely unsafe, at the moment when
less trivial class is used as a member in that object things
will break.

Other cases were using memcpy into an object which comes from
an external library. We don't control that object, and we can
not guarantee it will always be safe for such memory tricks
and debugging bugs caused by such low level access is far fun.

Ideally we need to use more proper C++, but needs to be done with
big care, including benchmarks of each change, For now do
annoying but simple cast to void*.
2018-06-11 13:02:10 +02:00
Bastien Montagne
74051111eb Merge branch 'master' into blender2.8 2018-06-11 14:44:03 +02:00