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-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
2017-05-31Libmv: Re-bundle from upstream to ensure code base is perfectly in syncSergey Sharybin
2017-05-31Improve backscatter color of subsurface scattering in Principled BSDFPascal Schoen
Differential Revision: https://developer.blender.org/D2685
2017-05-30Audaspace: Don't use strict flagsSergey Sharybin
2017-05-30Cycles: Cleanup, trailing whitespaceSergey Sharybin
2017-05-30Fix T51652: Cycles - Persistant Images not storing imagesLukas Stockner
Denoising was setting session parameters for every frame, which was detected as a change and therefore caused a resync. Since the parameter modification change is only needed for viewport rendering (which doesn't support denoising anyways) and resyncing after a frame change (which isn't affected by denoising settings), an easy fix is to just ignore the denoising parameters like it's currently done with the samples.
2017-05-29NDOF: clean up after MinGW removalMike Erwin
Follow up to 9f044cb422c1fc9ad79278092445f612342abb59 These comments described the difference between Microsoft & MinGW's struct definition. Now that we dropped MinGW we don't need to go into these details.
2017-05-29Fix T51646: Motion Tracker instantly crashesSergey Sharybin
Was a mistake in previous changes. Weirdly enough, frame reading assumes cache_key is always non-NULL..
2017-05-27Remove MinGW supportAaron Carlisle
The Issue ======= For a long time now MinGW has been unsupported and unmaintained and at this point, it looks like something that we should just leave behind and move on. Why Remove ========== One of the big motivations for MinGW back in the day is that it was free compared to MSVC which was licensed based. However, now that this is no longer true we have basically stopped updating the need CMake files. Along with the CMake files, there are several patches to the extern libs needed to make this work. For example, see: https://developer.blender.org/diffusion/B/browse/master/extern/carve/patches/mingw_w64.patch If we wanted to keep MinGW then we would need to make more custom patches to the external libs and this is not something our platform maintainers are willing to do. For example, here is the patches needed to build python: https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-python3 Fixes T51301 Differential Revision: https://developer.blender.org/D2648
2017-05-26Fix T50908: Motion Tracker ignored grease pencil maskSergey Sharybin
This feature got lost with new auto-track API, Added it back by extending frame accessor class. This isn't really a frame thing, but we don't have other type of accessor here. Surely, we can use old-style API here and pass mask via region tracker options for this particular case, but then it becomes much less obvious how real auto-tracker will access this mask with old style API. So seems we do need an accessor for such data, just matter of finding better place than frame accessor.
2017-05-26Cycles: Cleanup: Remove semicolons from line endings in Python codeLukas Stockner
2017-05-26Cycles: Update compositor when debug or denoising passes are changedLukas Stockner
2017-05-26Cycles: Cleanup: b_srlay is always used now, no more need to silence warningLukas Stockner
2017-05-24Cycles: Use falltrhough attribute to help catching missing break statementsSergey Sharybin
2017-05-24Fix T51589: Principled Subsurface Scattering, wrong shadow colorPascal Schoen
Apply mix of subsurface and base color (wrt subsurface) for rays that have transmitted the surface.
2017-05-23Fix T51592: Simplify AO Cycles setting remains active while Simplify is disabledSergey Sharybin
2017-05-22Fix T51568: CUDA error in viewport render after fix for for OpenCLSergey Sharybin
Seems re-loading module invalidates memory pointers by the looks of it, which gives an error on the next kernel call. Not sure how to move memory pointer from one CUDA module to another one, so for now simply disabling kernel re-load for CUDA devices. Not ideal, but better than failing render. Feature-selective option for CUDA is not an official feature anyway.
2017-05-21Cycles Denoising: Skip feature pass writing for volume-only shadersLukas Stockner
Volume shaders without anything connected to the surface output are treated as if they had a transparent BSDF as the surface shader in Cycles, so the denoiser should skip feature pass writing for them just as it does with an actual transparent BSDF.
2017-05-21Cycles Denoising: Skip confidence interval test for outlier central pixelsLukas Stockner
If the central pixel is an outlier, the denoiser is supposed to predict its value from the surrounding pixels. However, in some cases the confidence interval test would reject every single surrounding pixel, which leaves the model fitting with no data to work with.
2017-05-20Cycles: Cleanup, style and unused argumentsSergey Sharybin
- Some arguments were inapproriatry tagged as unused using (void)foo semantic. Only use such semantic in tricky casses, when something needs to be ignored in release builds or something is dependent on tricky ifndef policy. For rest of the cases just use void foo(int /bar*/) semantic, which ensures variable is not used. Solves confusion and code running out of sync with later development. - Used proper unused semantic to some arguments. - Added braces to make code easier to follow, tricky indentation with ifdef, uh.
2017-05-20CMake: Use GCC7's -Wimplicit-fallthrough=5Campbell Barton
Use to avoid accidental missing break statements, use ATTR_FALLTHROUGH to suppress.
2017-05-20Cycles Denoising: Prevent overfitting when using a very low radiusLukas Stockner
For example, when using a radius of 1, only 9 pixels (due to weighting maybe even less) will be used, but the transform code may still decide to use a 5-dimensional (or even higher) fit. This causes severe overfitting and therefore weird pixel values. To avoid this, this commit limits the amount of dimensions to a third of the pixel number. For a radius of 3 or more, this doesn't change anything, but for 1 and 2 it can prevent fireflies and/or negative values being produced.
2017-05-20Fix T51560: Black pixels on a denoising renderLukas Stockner
Once again, numerical instabilities causing the Cholesky decomposition to fail. However, further increasing the diagonal correction just because of a few pixels in very specific scenes and settings seems unjustified. Therefore, this commit simply falls back to the basic NLM-filtered pixel if the more advanced model fails.
2017-05-19Cycles: Reload kernels from Session when requested features changeMai Lavelle
This fixes T49496.
2017-05-19Cycles: Fix compilation error after recent changesSergey Sharybin
Spotted by Steffen Dünner, thanks@
2017-05-19Cycles: Cleanup, always use parenthesisSergey Sharybin
Easier to read/follow, and more robust for the further changes.
2017-05-19Cycles: Cleanup, indentation in preprocessorSergey Sharybin
2017-05-19Cycles: Cleanup, variable namesSergey Sharybin
Don't use camel case for variable names. Leave that for the structures.