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-05-03Cycles: Split kernel - sort shadersHristo Gueorguiev
Reduce thread divergence in kernel_shader_eval. Rays are sorted in blocks of 2048 according to shader->id. On R9 290 Classroom is ~30% faster, and Pabellon Barcelone is ~8% faster. No sorting for CUDA split kernel. Reviewers: sergey, maiself Reviewed By: maiself Differential Revision: https://developer.blender.org/D2598
2017-05-03Cycles: Fix OpenCL compilation failure after recent color changesSergey Sharybin
It is really confusing to have some functions available in some devices and not on another devices.
2017-05-03Cycles: Use render visibility for duplis when Render Layer option in ↵Sergey Sharybin
viewport is used Previously the logic was different for duplis and regular objects: regular objects were using render visibility when Render Layer option is enabled which duplis were always using viewport visibility when rendering from the viewport. This was quite confusing because caused different results in viewport and render when artists were expecting them to match 1:1.
2017-05-03Cycles: Simplify code in SVM image by using new utility functionSergey Sharybin
Can not measure any performance difference, so seems the code is identical and just shorter.
2017-05-03Cycles: Add utility function to convert float4 color from srgb to linearSergey Sharybin
It will use SSE2 optimized version when is possible.
2017-05-02Cycles: Remove extra clFinish from driver workaroundMai Lavelle
These were causing problems with Nvidia OpenCL.
2017-05-02Cycles: Output split state element sizeMai Lavelle
2017-05-02Cycles: Branched path tracing for the split kernelMai Lavelle
This implements branched path tracing for the split kernel. General approach is to store the ray state at a branch point, trace the branched ray as normal, then restore the state as necessary before iterating to the next part of the path. A state machine is used to advance the indirect loop state, which avoids the need to add any new kernels. Each iteration the state machine recreates as much state as possible from the stored ray to keep overall storage down. Its kind of hard to keep all the different integration loops in sync, so this needs lots of testing to make sure everything is working correctly. We should probably start trying to deduplicate the integration loops more now. Nonbranched BMW is ~2% slower, while classroom is ~2% faster, other scenes could use more testing still. Reviewers: sergey, nirved Reviewed By: nirved Subscribers: Blendify, bliblubli Differential Revision: https://developer.blender.org/D2611
2017-05-02Cycles: Fix missing type declaration in OpenCL imageSergey Sharybin
Spotted by Mai in IRC, thanks!
2017-05-02Cycles: Fix CUDA split kernelSergey Sharybin
Global size y needs to be a multiple of 16.
2017-05-02Cycles: Cache split kernels in CUDA deviceSergey Sharybin
This way we don't re-load kernels for every sample in the viewport. Additionally, we don't risk global size changed inbetween of samples.
2017-04-29Cycles: Fix crashes after recent image changesMai Lavelle
Not sure if this is a proper fix, but was getting frequent crashes, so committing this real quick just to make master sable again. Can be reverted later if there's a better fix. The changes to images really need a closer look...
2017-04-28Cycles: Use relative path for #line directivesSergey Sharybin
This way moving Blender bundle around doesn't re-trigger kernels compilation.
2017-04-28Libmv: Make ERROR a default printing severitySergey Sharybin
2017-04-28Cycles: Correct comment after previous commitSergey Sharybin
2017-04-28Cycles: Lower default severity level to ERRORSergey Sharybin
2017-04-28Cycles: De-duplicate bit magic for decoding image options in OpenCL kernelSergey Sharybin
2017-04-28Cycles: Simplify code around maximum OpenCL info size allocationSergey Sharybin
2017-04-28Cycles: Cleanup, de-duplicate image packing of various typesSergey Sharybin
2017-04-28Cycles: Quick (real) fix for broken textures on OpenCLSergey Sharybin
Previous fix did not work for mixed textures. This one will over-allocate information array, but it's better than not being able to render at all. Some more cleanup and improvement is coming.
2017-04-28Revert "Cycles: Fix image textures were completely broken since recent ↵Sergey Sharybin
unlimited textures commit" This reverts commit 8f4166ee495531fa38b676b0a5ef4c482e89f9a5. The fix was not correct for cases when we've got float textures.
2017-04-28Cycles: Cleanup, spelling and bracesSergey Sharybin
2017-04-28Cycles: Fix image textures were completely broken since recent unlimited ↵Sergey Sharybin
textures commit The indexing was totally wrong in both image packing code and image sampling in kernel. Fixes T51341: Cycles OpenCL corruption in todays buildbot
2017-04-28Cycles: Cleanup, always use braces for blocksSergey Sharybin
2017-04-28Cycles: Cleanup, indentation in preprocessorSergey Sharybin
2017-04-28Cycles: Cleanup, use ccl::vector instead of std::vectorSergey Sharybin
2017-04-28Cycles: Cleanup, indentaiton and trailing whitespace and wrappingSergey Sharybin
2017-04-27Cleanup: Some style and code tweaks to Image Code after changes.Thomas Dinges
Whitespace and order of switch/case etc. Let's try to stick to float4/byte4/half4/float/byte/half order as defined in "ImageDataType".
2017-04-27Unlimited number of textures for CyclesStefan Werner
This patch allows for an unlimited number of textures in Cycles where the hardware allows. It replaces a number static arrays with dynamic arrays and changes the way the flat_slot indices are calculated. Eventually, I'd like to get to a point where there are only flat slots left and textures off all kinds are stored in a single array. Note that the arrays in DeviceScene are changed from containing device_vector<T> objects to device_vector<T>* pointers. Ideally, I'd like to store objects, but dynamic resizing of a std:vector in pre-C++11 calls the copy constructor, which for a good reason is not implemented for device_vector. Once we require C++11 for Cycles builds, we can implement a move constructor for device_vector and store objects again. The limits for CUDA Fermi hardware still apply. Reviewers: tod_baudais, InsigMathK, dingto, #cycles Reviewed By: dingto, #cycles Subscribers: dingto, smellslikedonkey Differential Revision: https://developer.blender.org/D2650
2017-04-26Cycles: Allow samples to finish in split kernel to avoid artifacts when ↵Mai Lavelle
canceling Previously canceling a render done by the split kernel could cause artifacts such as very bright or dark tiles. This was caused by unfinished samples being included in the output buffer. To avoid this we now wait till all the currently rendering samples have finished, up to a limit of twice the expected time for them to finish (currently this is no more than 20 seconds, but usually its much less). If samples still haven't finished by then we stop anyways in case there's an endless loop occurring.
2017-04-26Cycles: Change OpenCL split kernel to use single program by defaultMai Lavelle
Single program builds twice as fast as multi programs, so its better for users to have it as the default.
2017-04-26Cycles: Enable Correlated Multi Jitter for OpenCL and split kernelMai Lavelle
Testing showed no issues so there's no reason to not have this.
2017-04-26Cycles: Fix over-allocation of triangles storage for triangle primitive hairSergey Sharybin
Was also causing some bad memory access caused by read data from non-initialized arrays. Repoted by bzztploink in IRC, thanks!
2017-04-26User preferences: Use checkbox for Cycles device selectionSergey Sharybin
It was totally unclear whether the device is enabled or disabled. Lots of people got fully lost in the current interface. While the solution is not fully ideal, it is at least solves ambiguity in the interface.
2017-04-26Cycles: Fix access undefined macro on non-MSVC compilerSergey Sharybin
Also rremove trailing whitespace.
2017-04-25workaround for T50176lazydodo
This works around a long outstanding issue T50176 with cycles on msvc2015/x86 . root cause is still unknown though,feels like a game of whack'a'mole Reviewers: sergey, dingto Subscribers: Blendify Tags: #cycles Differential Revision: https://developer.blender.org/D2573
2017-04-25Cycles: use safe compiler flags for OpenCL.Hristo Gueorguiev
Using -cl-fast-relaxed-math assumes no NaN/Inf values in any expression. This causes problems on overflow, division by zero, square root of negative number. Comparisons with NaN or infinite value are affected as well. This patch causes <2% slowdown on benchmark scenes. Fix T50985: Rendering volume scatter with GPU OpenCL comes to an halt after a few seconds
2017-04-25Workaround for AMD GPU OpenCL compiler.Hristo Gueorguiev
2017-04-25Cycles: Fix strict compiler flagsSergey Sharybin
2017-04-25Cycles: Cleanup, mainly line length in random moduleSergey Sharybin
Was doing lots of investigation recently, with need to have lots of things side by side.
2017-04-25Cycles: Split vectorized math utilities to a dedicated filesSergey Sharybin
This file was even a bigger mess than vectorized types header, cleaning it up to make it easier to maintain this files and extend further.
2017-04-25Cycles: Split vectorized types into separate filesSergey Sharybin
The final goal to reach is to make vectorized types much easier to maintain and the previous design had following issues: - Having all types and methods implementation made the source file rather bloated and unfun to navigate in. - It was not possible to quickly glance available API for the type you are interested in. - Adding more vectorization types will bloat the file even more, making things even more tricky to follow.
2017-04-25Cycles: Cleanup, preprocessor indentationSergey Sharybin
2017-04-24Cycles: Remove re-hashing done in BPT volume codeSergey Sharybin
Since 9d50175 this is no longer needed, at least not with the current sampler we are using.
2017-04-24Cycles: Cleanup, space after keywordSergey Sharybin
2017-04-24Add C internal version of msgfmt (similar to makesrna/dna binaries).Bastien Montagne
Fixes performance issues of C++ one with Windows MSVC debug builds... Merely a translation from msgfmt.cc code by @sergey, using BLI libs intead of C++'s stdlib. Reviewers: sergey, campbellbarton, LazyDodo Subscribers: sergey Differential Revision: https://developer.blender.org/D2605
2017-04-21Cycles: Solve speed regression of classroom scene after principled commitSergey Sharybin
This way we can skip it from compiling into OpenCL kernels by making this shader compile-time feature.
2017-04-21Cycles: Make it a generic base class for all types of closure nodesSergey Sharybin
The idea is to have osme geenric BSDF node which is subclassed by "regular" BSDF nodes and uber shaders. This way we can access special type and closure type for making decisions somewhere else.
2017-04-21CMake: Add option to build against system-wide GlogSergey Sharybin
Similar to previous commit for Gflags.
2017-04-21Cycles: Cleanup, indentation in preprocessorSergey Sharybin