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
AgeCommit message (Collapse)Author
2017-10-31Cycles: Bump version number to 1.9.0Sergey Sharybin
This matches Blender Release 2.79.
2017-10-24Code refactor: move more memory allocation logic into device API.Brecht Van Lommel
* Remove tex_* and pixels_* functions, replace by mem_*. * Add MEM_TEXTURE and MEM_PIXELS as memory types recognized by devices. * No longer create device_memory and call mem_* directly, always go through device_only_memory, device_vector and device_pixels.
2017-10-21Code refactor: avoid some unnecessary device memory copying.Brecht Van Lommel
2017-10-08Cycles: OpenCL bicubic and tricubic texture interpolation support.Brecht Van Lommel
2017-10-07Code refactor: make texture code more consistent between devices.Brecht Van Lommel
* Use common TextureInfo struct for all devices, except CUDA fermi. * Move image sampling code to kernels/*/kernel_*_image.h files. * Use arrays for data textures on Fermi too, so device_vector<Struct> works.
2017-10-05Fix T53001: more workarounds for crash in AMD compiler with recent drivers.Brecht Van Lommel
2017-09-20Fix T52368: Cycles OSL trace() failing on Windows 32 bit.Brecht Van Lommel
2017-09-04Cycles: Fix compilation warningSergey Sharybin
2017-08-29Fix Cycles Windows render errors with BVH2 CPU rendering.Brecht Van Lommel
One problem is that it was always using __mm_blendv_ps emulation even if the instruction was supported. The other that the emulation function was wrong. Thanks a lot to Ray Molenkamp for tracking this one down.
2017-08-25Cycles: Add utility function to query current value of scoped timerSergey Sharybin
2017-08-24Cycles: FIx issue with -0 being considered a non-finite valueSergey Sharybin
2017-08-23Fix implementation of atomic update max and move to a central locationMai Lavelle
While unlikely to have had any serious effects because of limited use, the previous implementation was not actually atomic due to a data race and incorrectly coded CAS loop. We also had duplicates of this code in a few places, it's now been moved to a single location with all other atomic operations.
2017-08-21Cycles: reorganize Performance panel layout, move viewport BVH type to debug.Brecht Van Lommel
2017-08-19Fix T52443: Cycles OpenCL build error after recent mesh lights changes.Brecht Van Lommel
2017-08-12Fix T52372: CUDA build error after recent changes.Brecht Van Lommel
2017-08-12Fix T52368: OSL trace() crash after recent changes.Brecht Van Lommel
2017-08-11Fix T52322: denoiser broken on Windows after recent changes.Brecht Van Lommel
It's not clear why this only happened on Windows, but the code was wrong and should do a bitcast here instead of conversion.
2017-08-08Cycles: Add utility macro ccl_refSergey Sharybin
It is defined to & for CPU side compilation, and defined to an empty for any GPU platform. The idea here is to use this macro instead of #ifdef block with bunch of duplicated lines just to make it so CPU code is efficient. Eventually we might switch to references on CUDA as well, but that would require some intensive testing.
2017-08-07Fix Windows build errors with recent Cycles SIMD refactoring.Brecht Van Lommel
2017-08-07Cycles: Cleanup, space after keywordSergey Sharybin
2017-08-07Code refactor: use float4 instead of intrinsics for CPU denoise filtering.Brecht Van Lommel
Differential Revision: https://developer.blender.org/D2764
2017-08-07Code refactor: add, remove, optimize various SSE functions.Brecht Van Lommel
* Remove some unnecessary SSE emulation defines. * Use full precision float division so we can enable it. * Add sqrt(), sqr(), fabs(), shuffle variations, mask(). * Optimize reduce_add(), select(). Differential Revision: https://developer.blender.org/D2764
2017-08-07Code refactor: split defines into separate header, changes to SSE type headers.Brecht Van Lommel
I need to use some macros defined in util_simd.h for float3/float4, to emulate SSE4 instructions on SSE2. But due to issues with order of header includes this was not possible, this does some refactoring to make it work. Differential Revision: https://developer.blender.org/D2764
2017-08-03Cycles: Extra tweaks to performance of header expansionSergey Sharybin
Two main things here: 1. Replace all unsafe for #line directive characters into a single loop, avoiding multiple iterations and multiple temporary strings created. 2. Don't merge token char by char but calculate start and end point and then copy all substring at once. This gives about 15% speedup of source processing time. At this point (with all previous commits from today) we've shrinked down compiled sources size from 108 MB down to ~5.5 MB and lowered processing time from 4.5 sec down to 0.047 sec on my laptop running Linux (this was a constant time which Blender will always spent first time loading kernel, even if we've got compiled clbin).
2017-08-02Cycles: Avoid some expensive operations in header expansionsSergey Sharybin
Basically gather lines as-is during traversal, avoiding allocating memory for all the lines in headers. Brings additional performance improvement abut 20%.
2017-08-02Cycles: Support "precompiled" headers in include expansion algorithmSergey Sharybin
The idea here is that it is possible to mark certain include statements as "precompiled" which means all subsequent includes of that file will be replaced with an empty string. This is a way to deal with tricky include pattern happening in single program OpenCL split kernel which was including bunch of headers about 10 times. This brings preprocessing time from ~1sec to ~0.1sec on my laptop.
2017-08-02Cycles: Speed up #include expansion algorithmSergey Sharybin
The idea is to re-use files which were already processed. Gives about 4x speedup of processing time (~4.5sec vs 1.0sec) on my laptop for the whole OpenCL kernel. For users it will mean lower delay before OpenCL rendering might start.
2017-07-25Fix T51450: viewport render time keeps increasing after render is done.Jeff Knox
Reviewed By: brecht Differential Revision: https://developer.blender.org/D2747
2017-07-21Fix a few harmless maybe uninitialized warnings with GCC 5.4.Brecht Van Lommel
GCC seems to detect uninitialized into function calls now, but then isn't always smart enough to see that it is actually initialized. Disabling this warning entirely seems a bit too much, so initialize a bit more now.
2017-07-06Cycles: Add artificial memory limit debug option for OpenCLMai Lavelle
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: 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: Fix compilation error when building without Glog and no C++11Sergey Sharybin
2017-06-30Cycles: Use float constants instead of doubleMai Lavelle
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-10Cycles: Add atomic decrement functions to util_atomic.hMai Lavelle
2017-06-08Cycles: Don't leave multiple spaces in the device nameSergey Sharybin
2017-05-24Cycles: Use falltrhough attribute to help catching missing break statementsSergey Sharybin
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-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: 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-19\0;115;0cCycles: Cleanup, use ccl_restrict instead of ccl_restrict_ptrSergey Sharybin
There were following issues with ccl_restrict_ptr: - We already had ccl_restrict for all platforms. - It was secretly adding `const` qualifier to the declaration, which is quite weird since non-const pointer can also be declared as restricted. - We never in Blender are using foo_ptr or FooPtr type definitions, so not sure why we should introduce such a thing here. - It is absolutely wrong from semantic point of view to put pointer into the restrict macro -- const is a part of type, not part of hint for compiler that some pointer is never aliased.
2017-05-19Fix T51555: Cycles tile count is incorrect when denoising is enabledLukas Stockner
Now rendered and denoised tiles are counted and displayed separately.
2017-05-17Cycles: Optimize expansion of headers in the sourceSergey Sharybin
Use smarter check of where the file is coming from instead of attempting to replace same source twice with different settings. Brings down processing time from 3.6sec to 1.8sec.
2017-05-11Cycles: Fix occasional black pixels from denoising with excessive radiiLukas Stockner
Numerical inaccuracies would cause the XtWX matrix to be no longer positive-semidefinite, which in turn caused the LSQ solver to fail.
2017-05-08Cycles: Fix compilation error with gcc-6.3.0 and debug modeSergey Sharybin
2017-05-07[Cycles] Fix math problems in safe_logflazydodo
log(0) is undefined and should not have been included log(1) == 0, dividing by zero is not recommended
2017-05-07Cycles: Implement denoising option for reducing noise in the rendered imageLukas Stockner
This commit contains the first part of the new Cycles denoising option, which filters the resulting image using information gathered during rendering to get rid of noise while preserving visual features as well as possible. To use the option, enable it in the render layer options. The default settings fit a wide range of scenes, but the user can tweak individual settings to control the tradeoff between a noise-free image, image details, and calculation time. Note that the denoiser may still change in the future and that some features are not implemented yet. The most important missing feature is animation denoising, which uses information from multiple frames at once to produce a flicker-free and smoother result. These features will be added in the future. Finally, thanks to all the people who supported this project: - Google (through the GSoC) and Theory Studios for sponsoring the development - The authors of the papers I used for implementing the denoiser (more details on them will be included in the technical docs) - The other Cycles devs for feedback on the code, especially Sergey for mentoring the GSoC project and Brecht for the code review! - And of course the users who helped with testing, reported bugs and things that could and/or should work better!