Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
AgeCommit message (Collapse)Author
2017-07-06Revert "Cycles: use std::min and max for extra overloads"Mai Lavelle
We already have this in util_algorithm.h This reverts commit cff172c7621d89773baa99a9460f19056efb5f1e.
2017-07-06Cycles: Dont allow global size to fall to zeroMai Lavelle
2017-07-06Cycles: Detect out of memory before buffer allocation in OpenCL devicesMai Lavelle
2017-07-06Cycles: use std::min and max for extra overloadsMai Lavelle
2017-07-05Cycles: Fix compilation error after recent logging changesSergey Sharybin
This file uses std::ostream for helper << operators, so need to make sure corresponding header is included.
2017-07-05Cycles: Pass string by const reference rather than by valueSergey Sharybin
Some of the functions might have been inlined, but others i don't see how that was possible (don't think virtual functions can be inlined here). In any case, better be explicitly optimal in the code.
2017-07-05Cycles: Fix compilation error when building without Glog and no C++11Sergey Sharybin
2017-07-03Fix T51950: Abnormally long Cycles OpenCL GPU render times with certain ↵Lukas Stockner
panoramic camera settings The problem here was that when a "invalid" path is generated by the panoramic camera, it was tagged as RAY_TO_REGENERATE with the intention of generating a new path in kernel_buffer_update. However, since that state was not handled in kernel_queue_enqueue, kernel_buffer_update did not process the path which resulted in an infinite loop.
2017-07-03Cycles: Add missing split kernel to CPUDeviceLukas Stockner
2017-07-03Fix missing return error introduced by last commitLuca Rood
End of non-void function was being reached since f5535fcb83fd7c1374697923b43565c9e303d225
2017-07-03Fi T51023: MixRGB constant folding not effective with clamp option.Brecht Van Lommel
2017-07-03Fix T51855: Cycles emssive objects with NaN transform break lighting.Brecht Van Lommel
2017-07-02Fix T51759: fluid simulation particles not remoevd when colliding with ↵Lucas Veber
outflow objects. Reviewed By: brecht Differential Revision: https://developer.blender.org/D2719
2017-07-02Fix T51956: color noise with principled sss, radius 0 and branched path.Brecht Van Lommel
2017-07-02Fix principled BSDF incorrectly missing subsurface component with base color ↵Brecht Van Lommel
black.
2017-06-30Better fix for isfinite problem - works in older gcc's too.Howard Trickey
Previous fix relying on __cplusplus value didn't fix for older gcc's on linux, but this fix does.
2017-06-30Fix compile error after recent 9c2bbfb6 commit.Howard Trickey
Older C++ compilers use finite instead of isfinite.
2017-06-30Cycles: Use float constants instead of doubleMai Lavelle
2017-06-30Cycles: Disable baking in mega kernel when not in use to improve build timesMai Lavelle
2017-06-30Fix T50887: Holes in fluid mesh on WindowsCampbell Barton
D2556 by @chrisr
2017-06-28Fix T51909: Cycles: Uninitialized closure normals for the Hair BSDFLukas Stockner
As the title says, the normal wasn't set for the Hair BSDF because it wasn't needed before. However, the denoiser uses it to store the feature passes, so it needs to be set now.
2017-06-22Cycles: Fix excessive sampling weight of glossy Principled BSDF componentsLukas Stockner
If there was any specularity in the Principled BSDF, it would get a sampling weight of one regardless of its actual impact. This commit makes Cycles estimate the contribution of the component and adjust the weighting accordingly, which greatly improves the noise characteristics of the Principled BSDF in many cases. Note that this commit might slightly change the brightness of areas when using MultiGGX and high roughnesses, but the new brightness is more accurate and closer to the result of Branched Path Tracing. See T51836 for details. Differential Revision: https://developer.blender.org/D2677
2017-06-22Fix T51836: Cycles: Fix incorrect PDF approximations of the MultiGGX closuresLukas Stockner
The PDF of the MultiGGX sampling is approximated by the singlescattering GGX term as well as a scaled diffuse term that makes up for the energy in the multiscattering component that's missed by GGX. However, there were two problems with the glossy terms: The diffuse term missed a normalization factor, and the singlescattering term was not properly scaled down based on the albedo estimate. The glass term was completely wrong and has been rewritten. It uses the fresnel factor to weight reflection vs. refraction and uses the glossy MultiGGX model for reflection. For refraction, the correct singlescattering term is now used, and a new albedo approximation is used that was derived by evaluating GGX albedo for roughnesses from 0 to 1 and IORs from 1 to 3 and fitting numerical approximations to it. The resulting model has a mean relative error of 9e-5, but could probably be simplified without losing noticable accuracy in the final render. The improved PDFs help with glossy highlights (due to better light sampling vs. closure sampling MIS) and fix the situation described in T51836 where mixing MultiGGX with other closures (as it happens in e.g. the Principled BSDF) causes incorrect darkening.
2017-06-21Fix T51849: change Cycles clearcoat gloss to roughness.Brecht Van Lommel
This is compatible with UE4 and more consistent with specular and transmission roughness, even if it deviates from the original Disney BRDF.
2017-06-19Cleanup: doxygen commentsCampbell Barton
Also remove duplicate & mismatching comments from grease-pencil header. Keep comments close to implementation to avoid getting out of sync.
2017-06-17Guarded allocator: Fix type in macro definitionSergey Sharybin
The crash did not happen yet because we always had proper vmemh defined in the parent scope. Patch by Ivan Ivanov (aka obiwanus), thanks! Differential Revision: https://developer.blender.org/D2715
2017-06-16Cycles: Fix race condition happening in progress utilitySergey Sharybin
This is not enough to mutex-guard modification code of integer values, since this operation is NOT atomic. This is not even safe for a single byte data types. For now guarded the getter functions, similar to other functions in this module. Ideally we want to switch modification to an atomic operations, so we wouldn't need any locks in the getters.
2017-06-14Cycles: Fix typo in commentSergey Sharybin
2017-06-13Fix T51791: Point Density doesn't work on GPUHristo Gueorguiev
2017-06-13Cycles: Cleanup, indentationSergey Sharybin
2017-06-13Cycles: Fix compilation error of OpenCL mega kernelSergey Sharybin
Was some mismatch in address space. Seems to be caused by recent additions. Additionally, moved decoupled ray marching functions under ifdef, so they don't try to use malloc() functions. Thanks Mai for testing the patch!
2017-06-12Cleanup: indentation, long linesCampbell Barton
2017-06-12Cycles: adjust supported driver version for AMD GPUsHristo Gueorguiev
On Windows 17.Q1 and 17.Q2 return driver version 2236.10.
2017-06-11Cycles Denoising: Add more failsafes for invalid pixelsLukas Stockner
Now, when there is no usable neighboring pixel for denoising, the noisy value is preserved instead of producing a NaN. Also, negative results are clamped to zero. Note that there are just workarounds that don't fix the underlying problems, but these issues are very rare and I'm not sure if it's even possible to fix the underlying problems without introducing a significant slowdown or quality decrease in other situations. Because of that and since 2.79 is happening very soon, I just went for these workarounds for now.
2017-06-10Cycles: Selectively include denoising in kernelSergey Sharybin
2017-06-10Cycles: Pass all buffers to each kernel call for OpenCLMai Lavelle
Technically not passing all buffers used by a kernel is undefined behavior. We haven't had any issues with this so far on AMD or Nvidia, but it's known to be a problem with Intel and we received a report from AMD that this is a problem on newer hardware, so we need to make this change at some point. Unfortunately there a cost to being correct, about 5% for the benchmark scenes. For low sample counts it's even worse, I've seen up to 50% slowdown. For the latter case I think adjusting tile updating logic can help, but not sure what that would look like yet (it would be just a few lines change however).
2017-06-10Cycles: Faster split branched path tracing by sharing samples with inactive ↵Mai Lavelle
threads Unlike regular path tracing, branched path tracing is usually used with lower sample counts, at least for primary rays. This means that are less samples for the GPU to work on in parallel and rendering is slower. As there is less work overall there is also more inactive threads during rendering with BPT. This patch makes use of those inactive rays to render branched samples in parallel with other samples. Each thread that is preparing for a branched sample will attempt to find an inactive thread and if one is found the state for the sample is copied to that thread. Potentially, if there are enough inactive threads, 100s of branched samples could be generated from the same originating thread and ran in parallel giving large speed ups. Gives 70% faster render for pavillion midday scene. 20-60% faster on BMW with car paint replaced with SSS/volumes.
2017-06-10Cycles: Modify path_radiance_accum_sample to use atomics for split kernelMai Lavelle
Samples ran in parallel need a safe way to accumulate their results with the results of other threads.
2017-06-10Cycles: Add function to dequeue a rayMai Lavelle
2017-06-10Cycles: Add atomic decrement functions to util_atomic.hMai Lavelle
2017-06-10Cycles: Add kernel to enqueue inactive raysMai Lavelle
The queue will be used to make reuse of inactive threads to keep the GPU more busy.
2017-06-10Cycles: Blacklist unsupported OpenCL devicesHristo Gueorguiev
Due to various driver issues with AMD GCN 1 cards we can no longer support these GPUs. This patch makes them unavailable to select for Cycles rendering. GCN cards 2 and higher are still supported. Please use the most recent drivers available to ensure proper functionality. See here for a list to check which GPUs are supported: https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units
2017-06-10Cycles: Fix denoising passes being written when they're not actually generatedLukas Stockner
2017-06-09Cleanup Cycles Denoising platform-specific definesLukas Stockner
2017-06-09Cycles Denoising: Speedup reconstruction by skipping near-zero weightsLukas Stockner
2017-06-09Cycles Denoising: Merge outlier heuristic and confidence interval testLukas Stockner
The previous outlier heuristic only checked whether the pixel is more than twice as bright compared to the 75% quantile of the 5x5 neighborhood. While this detected fireflies robustly, it also incorrectly marked a lot of legitimate small highlights as outliers and filtered them away. This commit adds an additional condition for marking a pixel as a firefly: In addition to being above the reference brightness, the lower end of the 3-sigma confidence interval has to be below it. Since the lower end approximates how low the true value of the pixel might be, this test separates pixels that are supposed to be very bright from pixels that are very bright due to random fireflies. Also, since there is now a reliable outlier filter as a preprocessing step, the additional confidence interval test in the reconstruction kernel is no longer needed.
2017-06-08Cycles: Don't leave multiple spaces in the device nameSergey Sharybin
2017-06-08Cycles: Display optional board name in system infoSergey Sharybin
2017-06-08Cycles: Cleanup, indentationSergey Sharybin
2017-06-07Report OpenSubdiv version Blender is compiled againstSergey Sharybin