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-11-30Cycles: Fix rendering of barbershop scenesplit-kernel-faster-buildingMai Lavelle
2017-11-29Merge branch 'master' into split-kernel-faster-buildingMai Lavelle
2017-11-28Cleanup (remove commented OMP directive).Bastien Montagne
2017-11-28Removing OMP: BKE's tracking_stabilize.Bastien Montagne
Again, 2 times quicker with BLI than with OMP (from about 5ms to 2.5ms per frame for the parallelized loop, on a rather small video...).
2017-11-28Cycles: Fix issue with AO in split kernel_path_backgroundMai Lavelle
Watch out for changes to variables passed by value, these changes don't persist across the split.
2017-11-28makesdna/makesrna: silence output by defaultCampbell Barton
No need to print status for basic & reliable operations, build systems can output operations they run if needed, or debug output changed in the source if developers are debugging. Nice for ninja, so any printed text hints at a problem to fix.
2017-11-28Cycles: Fix build with OSL enabledMai Lavelle
2017-11-27Fix T53145: bevel tool does not start with amount at zero.Brecht Van Lommel
2017-11-27Cleanup: indentationSergey Sharybin
2017-11-27Remove workaround for loopcut and DM stabilitySergey Sharybin
Neither me nor Campbell could redo the issue, lets get rid of this workaround and fix it properly if still needed.
2017-11-27Depsgraph: Make sure unexpected configuration does not happenSergey Sharybin
2017-11-27Sequencer: Fix missing FX compositor when starting rendering from frame with ↵Sergey Sharybin
DoF disabled
2017-11-27Sequencer: Add option to render OpenGL preview with DoFSergey Sharybin
The title says it all actually, controlled with DoF check box next to textured solid check box. Thanks Campbell for review!
2017-11-27Refactor view3d offscreen drawing to avoid having multiple boolean argumentsSergey Sharybin
This is fully unreadable to have lots of boolean arguments scattered across the whole argument list. What does `false, true, true` mean in terms of behavior? Replace those with bitfield which has advantage of having more human readable meaning.
2017-11-27Cycles: Split shader_eval out of the kernel_lamp_emission kernelMai Lavelle
With this kernels for BWM and classroom scenes are building in half the time as master. Render times are 1% faster as well.
2017-11-27Tracking: Cleanup. make code friendly for multi-column editingSergey Sharybin
2017-11-27Cycles: Split kernel_path_lamp_emissionMai Lavelle
2017-11-27Cycles: Split indirect_lamp_emissionMai Lavelle
2017-11-27Cycles: Only use first lamp in indirect_lamp_emissionMai Lavelle
Produces different results when lamps overlap from POV of a ray, but allows for this function to be split. The differences probably wont be noticeable in most scenes. Old behavior could be reattained by placing lamps into the BVH.
2017-11-27Cycles: Fix mistake with ShaderEvalTask that could lead to crashMai Lavelle
2017-11-27Cleanup: incorrect commentCampbell Barton
2017-11-27Cycles: Merge shadow_blocked_ao and _dl kernels to improve build timesMai Lavelle
Gives another 4 seconds improvement.
2017-11-27Cycles: Remove early out that may cause threads to diverge before barrierMai Lavelle
2017-11-26Cleanup: ImageEditor's mask drawing code was re-implementing ↵Bastien Montagne
`BKE_maskrasterize_buffer`! So this deduplicates and simplifies code, yeah. Also, as an odd bonus, new code seems slighly quicker than previous one (about 5 to 10% quicker).
2017-11-26Removing OMP: BKE's mask_rasterize.cBastien Montagne
Once again nothing much to say here, except that whole mask rendering process from VSE is about 25% quicker now. ;)
2017-11-26Removing OMP: autotrack BKE code.Bastien Montagne
Pretty straightforward this time, we already have a single struct pointer containing all needed data (or nearly). And we gain about 10-15% speed on tracking! :)
2017-11-26Removing OMP: bmesh_operators.cBastien Montagne
Two more 'not really useful' cases (OMP only shows some noticeable speedup with above 1M elements, and since this is quick operation anyway compared to even ather basic operators, gain is in the 1% area of total processing time in best case). So not worth parallelizing here, we'll gain much more on tackling heavy operations. ;) And BMesh is free from OMP now!
2017-11-26Removing OMP: bmesh_interp.cBastien Montagne
Performances tests on this one are quite surprising actually... Parallelized loop itself is at least 10 times quicker with new BLI_task code than it was with OMP. And subdividing e.g. a heavy mesh with 3 levels of multires (whole process) takes 8 seconds with new code, while 10 seconds with OMP one. And cherry on top, BLI_task code only uses about 50% of CPU load, while OMP one was at nearly 100%! In fact, I suspect OMP code was not properly declaring outside vars, generating a lot of uneeded locks. Also, raised the minimum level of subdiv to enable parallelization, tests here showed that we only start to get significant gain with subdiv levels of 4, below single threaded one is quicker.
2017-11-26Removing OMP: nuke last usages in bmesh_mesh.cBastien Montagne
Those three ones were actually giving no significant benefits, in fact even slowing things down in one case compared to no parallelization at all (in `BM_mesh_elem_table_ensure()`). Point being, once more, parallelizing *very* small tasks (like index or flag setting, etc.) is nearly never worth it. Also note that we could not easlily use per-item parallel looping in those three cases, since they are heavily relying on valid loop-generated index (or are doing non-threadable things like allocation from a mempool)...
2017-11-26Fix T53349: AO bounces not working correct with OpenCL.Mathieu Menuet
2017-11-26Cleanup: rename edge -> edgesCampbell Barton
2017-11-26Cycles: Use ShaderEvalIntent more to pass flag, closures, and eval_task lessMai Lavelle
This makes it so that path_flag and max_closures are not passed to shader eval functions, instead a limited number of ShaderEvalIntents are used. This also removes the need for ShaderEvalTask in the mega kernel and simplifies the code a bit.
2017-11-26Minor improvement to last commitCampbell Barton
Don't operate on multiple boundaries at once, instead keep collapsing from the first selected boundary.
2017-11-26BMesh: improve edge rotate when edges share facesCampbell Barton
Previously outcome depended on order of edges, now the longest boundary edges are rotated first, then the faces connected edges. This gives more predictable results, allowing regions containing a vertex fan to be rotated onto the next vertex.
2017-11-26Cleanup: move edge-rotate into own fileCampbell Barton
2017-11-26Fix T53393: Change from 'd' key to 'draw' panel button causes pencil to be ↵Joshua Leung
activated immediately instead of upon LMB
2017-11-26Fix for Fix (c): broken atomic lock in own bmesh code.Bastien Montagne
That was a nasty one, Debug build would never have any issue (even tried with 64 threads!), but Release build would deadlock nearly immediately, even with only 2 threads! What happened here (I think) is that gcc optimizer would generate a specific path endlessly looping when initial value of virtual_lock was FLT_MAX, by-passing re-assignment from v_no[0] and the atomic cas completely. Which would have been correct, should v_no[0] not have been shared (and modified) by multiple threads. ;) Idea of that (broken) for loop was to avoid completely calling the atomic cas as long as v_no[0] was locked by some other thread, but... Guess the avoided/missing memory barrier was the root of the issue here. Lesson of the evening: Remember kids, do not trust your compiler to understand all possible threading-related side effects, and be explicit rather than elegant when using atomic ops! Side-effect lesson: do check both release and debug builds when messing with said atomic ops...
2017-11-25Fix broken atomic_cas lock in own recent commit in bmesh.Bastien Montagne
Using atomic cas correctly is really hairy... ;) In this case, the returned value from cas needs to validate *two* conditions, it must not be FLT_MAX (which is our 'locked' value and would mean another thread has already locked it), but it also must be equal to previously stored value... This means we need two steps per loop here, hence using a 'for' loop instead of a 'while' one now. Note that collisions are (as expected) very rare, less than 1 for 10k typically, so did not catch the issue initially (also because I was mostly working with release build to check on performances...).
2017-11-24Depsgraph: Cleanup, indentationSergey Sharybin
2017-11-24Depsgraph: Allow finding operations after construction is doneSergey Sharybin
2017-11-24Depsgraph: Deduplicate operation node finding logicSergey Sharybin
2017-11-24Depsgraph: Use proper return type for find_node methodSergey Sharybin
2017-11-24Depsgraph: Use get_ prefix for function which expect operation to existsSergey Sharybin
2017-11-24Depsgraph: Make has_ prefixed function to return booleanSergey Sharybin
2017-11-24Depsgraph: Introduce explicit method which finds operation or returns NULLSergey Sharybin
2017-11-24Depsgraph: Make more clear what find_operation() is doing for componentSergey Sharybin
2017-11-24Cleanup leftover timing debug prints from own recent commits.Bastien Montagne
Sorry about that...
2017-11-24Cleanup: -Wnonnull-compare GCC warningCampbell Barton
2017-11-24Minor cleanup for own recent commits.Bastien Montagne
2017-11-23Getting rid of OMP: first usage of new parallel BMesh items iteration instead.Bastien Montagne
`BM_mesh_normals_update` was converted from OMP to new parallel iterator code, basic test with heavily subdivided cube (24.5k faces) gives: - old OMP code: average 10ms per run. - new BLI_task code: average 6ms per run. So new code seems to be easily 40% quicker, in addition to getting rid of OMP. ;) Reviewers: sergey, campbellbarton Differential Revision: https://developer.blender.org/D2930