From BlenderWiki

Jump to: navigation, search

Weekly Reports for year 2017

Week 265: 2nd - 8th January

Another week off in Russia.

Week 266: 9th - 15th January

  • General development
    • First week back from Russia. Monday was packing, Tuesday was a day in airports.
    • Investigated slow viewport update on dual-xeon 56 threads machine. Really need to reduce amount of mutex-locks for such configurations.
  • Cycles
    • Fixed wrong deformation motion blur with auto-smooth meshes (fixes agents' eye issue)
    • Optimized BVH for more optimal storage of motion curve primitives. Gave about 30% speedup in an agent-only hair scene.
    • Worked further on more optimal BVH for motion curve primitives. Gained some really nice speedups in the artifical scene (hair-only from agent). Real numbers will come shortly after re-rendering some shots to gain real-life statistics. Stay tuned!

Fixed: 0, Closed: 0.

Week 267: 16th - 22nd January

  • General development
    • Wrapped up and committed old patch from the studio for Nathan (Allow first clicking Shift before selecting axis of transform manipulator)
  • Cycles
    • Fixed wrong viewport rendering caused by -nan coordinates.
    • Wrapped up and committed olf patch for exposing diffuse and glossy depth to Light Path node
    • Finished motion blur patches from previous week, implemented similar speedup for triangles and moved everything to master branch.

Fixed: 0, Closed: 0.

Week 268: 23rd - 29th January

  • General development
    • Fixed crash with adaptive microdisplacement (caused by bug in OpenSubdiv)
    • Wrapped up some patches (AO approximation of indirect light mainly), worked on finishing other optimization patches (like speedup of transparent shadows on GPU).
    • Fixed bug in bug-o-meter.
  • Bug-tracker work
    • Fix T50517 Rendering expecting time is negative
    • Fix T50512 Linked Backround scene with animation not updating with new depsgraph
    • Fix T50032 Wrong render result when same image is used with and without alpha
  • Depsgraph
    • Fix duplicated operation node when two objects are sharing same armature

Fixed: 3, Closed: 6.

Week 268: 30th January - 5th February

  • General development
    • Explode modifier: Don't tessellate DM if we are not going to apply modifier
    • Buildbot: Re-enable cuda support for OSX
    • Spent quite some time looking into new deg issues, such as missing updates in special cases when viewing scene via sequencer.
  • Bug-tracker work
    • Fix T50331 New Dependency Graph - "frame" python driver expression not working
    • Fix T50535 Cycles render segfault when Explode modifier before hair particle modifier + UV material

Fixed: 3, Closed: 3.

Week 269: 6th - 12th February

  • General development
    • Fix memory leak when building without audaspace
    • Seed up displace modifier by multi-threading it
    • Optimized some parts of armature deform modifier
    • Fix missing hair after rendering with different viewport/render settings (was a regression since some other fix)
    • Speed up of color management in sequencer by multi-threading it
    • Fix non-deterministic behavior of image sequence loading via RNA API, causing Cycles to behave buggy
  • Bug-tracker work
    • Fix T49253 Cycles blackbody is wrong on AVX2 CPU on Windows
  • Cycles
    • Wrapped up and committed transparent shadows speedup for CUDA, giving 2x speedup on scene like koro.blend.
    • Fix pointiness attribute giving wrong results with autosplit
    • Initial work to cover Cycles nodes with OpenGL tests

Fixed: 1, Closed: 3.

Week 270: 13th - 19th February

  • General development
    • Lots of time spent on ensuring BKE_mesh_split_faces (used for auto-smooth) gives correct topology (used to return extra loose edges and vertices).
  • Bug-tracker work
    • Fix T50655 Pointiness is too slow to calculate
    • Fix T50542 Wrong metadata frame when using OpenGL render
    • Fix T50687 Cycles baking time estimate and progress bar doesn't work / progress when baking with high samples
  • Cycles
    • Fix wrong shading on GPU when background has NaN pixels and MIS enabled
    • Fix wrong transparent shadows with CUDA (regression in recent optimization)
    • Optimize sorting of transparent intersections on CUDA
    • Fix wrong pointiness caused by precision issues
    • Fix wrong hair render results when using BVH motion steps

Fixed: 3, Closed: 1.

Week 271: 20th - 26th February

  • General development
    • Quite some time was spent in the data center, recovering the development infrastructure machine and rewiring the rack.
  • Bug-tracker work
    • Fix T50719 Memory usage won't reset to zero while re-rendering on two video cards
    • Fix T50718 Regression: Split Normals Render Problem with Cycles
    • Fix T50748 Render Time incorrect when refreshing rendered preview in GPU mode
    • Fix T50656 Compositing node editor is empty, no nodes can be added
  • Cycles
    • Fix Cycles still saving render output when error happened
    • Fix wrong render results with texture limit and half-float textures
    • Fix non-zero exit status when rendering animation from CLI and running out of memory

Fixed: 4, Closed: 2.

Week 272: 27th February - 5th March

  • General development
    • Fix memory leak when making duplicates real and parent had constraints
    • Shrinkwrap constraint actually depends on geometry
    • Investigated how bad our task scheduler is, used TBB as reference. Appears that with TBB there is almost no speed regressions of new depsgraph in files like T50027.
    • Started working on improving our scheduler by simplifying the code.
  • Bug-tracker work
    • Fix T50634 Hair Primitive as Triangles + Hair shader with a texture = crash
    • Fix T50677 Shrinkwrap constraint don't get updated when target mesh gets modified
    • Fix T49936 Cycles point density get's it's bounding box from basis shape key
    • Fix T48549 Crash baking high-to-low-poly normal map in cycles
    • Fix T50565 Planar constraints don't work properly with non-Blender key configurations
  • Cycles
    • Fix division by zero in volume code which was producing -nan, producing render artifacts in the studio
    • Fixed untinialized variable in image texture loading (hopefully that was a reason of sometimes missing texture on the farm).

Fixed: 5, Closed: 4.

Week 273: 6th - 12th March

  • General development
    • Had party all week in the studio while Ton was away for the business trip
    • Worked on improvements for task scheduler. Mainly related on thread overhead. Gives 50% speedup with file from T50027 and makes new depsgraph only 10% slower on my machine with that scene.
    • The work from above also helped simplifying evaluation code in depsgrapgh
  • Bug-tracker work
    • Fix T50886 Blender crashes on render
    • Fix T49603 Blender/Cycles 2.78 CUDA error on Jetson-TX1~
    • Fix T50849 Transparent background produces artifacts in this compositing setup
  • Cycles
    • Spent quite some time reviewing work from Mai and Nirved prior putting it to master, including doing some performance comparisons for beautiful charts.

Fixed: 3, Closed: 3.

Week 274: 13th - 19th March

  • General development
    • Spend some time working on layer collections update via depsgraph. Dalai is finishing up that patch now.
  • Bug-tracker work
    • Fix T50938 Cache not being reset when changing simulation settings with new depsgraph
    • Fix T50968 Cycles crashes when image datablock points to a directory
  • Depsgraph
    • Fixed crash with curve bevel indirect dupligroups
  • Cycles
    • Some fixes to make Mesa OpenCL compiler more happy
    • Allow rendering a range of resumable chunks
    • Fixed compilation error of new OpenCL code on older drivers/cards
    • Tried to solve rendering artifacts on fglrx driver for gcn1 cards.
    • Fix compilation error of LCG RNG

Fixed: 2, Closed: 0.

Week 277: 20th - 26th March

  • General development
    • Spent quite some time hunting NaN pixels for the studio, was very tricky-to-reproduce issue =\
    • Spent some time discussing overrides with Dalai
  • Bug-tracker work
    • Fix T50990 Random black pixels in Cycles when rendering material with Multiscatter GGX
    • Fix T50975 Cycles: Light sampling threshold inadvertently clamps negative lamps
    • Fix T50268 Cycles allows to select un supported GPUs for OpenCL
    • Fix T50533 Transparency shader doesn't cast shadows with curve segments
    • Fix T50238 Cycles: difference in texture position between OpenGL and Cycles render
    • Fix T51007 Material viewport mode crash on node with more than 64 outputs
    • Fix T50995 Wrong freestyle render with new depgraph
  • Cycles
    • Use more friendly GPU device name for AMD cards
    • Use SSE-optimized version of triangle intersection for motion triangles
    • Workaround incorrect SSS with CUDA toolkit 8.0.61
    • Correct isfinite check used in integrator
  • Depsgraph
    • Fix missing relations update tag when typing #frame

Fixed: 7, Closed: 2.

Week 278: 27th March - 2nd April

  • General development
    • Fix threading conflicts in multitex_ext_safe()
  • Bug-tracker work
    • Fix T51051 Incorrect render on 32bit Linux
  • Cycles
    • Shadow catcher went online
    • Some optimizations for CPU (pass SSE vectors by reference rather than value and things like that)
    • Switch to reformulated Pluecker ray/triangle intersection, solves render artifacts of certain scenes
    • Worked around NVCC segfault for Fermi cards
    • Solve threading conflict in shader synchronization
  • Depsgraph
    • Fix missing updates when in local view

Fixed: 1, Closed: 1.

Week 279: 3d - 9th April

  • General development
    • Looked into all race condition reported by hellgrind on the barber shot render, trying to solve missing textures and spontaneous crashes. Took quitre some time, but seems we are good now.
    • This also lead fixing some uninitialized memory access in Cycles
    • Optimized Debug build of msgfmt on Windows by a factor of 2 (speeds up locales generation when doing debug build)
    • Added Blender 2.8 to the BUildbot
    • Looked into unit tests failure on 32 bit platform, fixed some real bug in motion tracking which was visible on such platforms.
  • Cycles
    • Fix corrupted mesh render when topology differs at the next zframe

Fixed: 0, Closed: 1.

Week 280: 10th - 16th April

  • General development
    • Fix use-after-free bug in motion tracking
    • Color management: Avoid memory copy into same buffer
    • Task scheduler: Prevent race condition for the pools created from non-main thread
    • Buildbot: Attempt to fix CUDA compilation on OSX
  • Bug-tracker work
    • Fix T51158 Motion Tracking Movie clip editor graph
    • Fix T51184 Crash of Blender when I try to join an object with one that has booleans modifiers
  • Blender 2.8
    • Helkped Dalai with getting core profile to work (fixing crash on startup)
  • Cycles
    • Workaround cubic volume filtering crashing on Linux
    • Fix empty OpenCL device name for certain configurations

Fixed: 2, Closed: 3.

Week 281: 17th - 23rd April

  • Bug-tracker work
    • Fix T51187 Memory leak when exporting OpenEXR monochrome animation
  • Blender 2.8
    • Use better workaround for getting scene layer for Derivedmesh's mask
    • Fix text drawing with core profile
    • Fix wrong RNA update function declarations which was causing crashes in painting modes
    • Use model view matrix instead of texture matrix for texture brush overlay (so we don't need to implement texture matrix stack for core profile)
    • Fix node editor drawing when built with core profile ()
    • Fix alpha overlay for sculpt/paint when using core profile
  • Cycles
    • Remove meaningless volume shader output if it has no volume shaders. Speeds up OpenCL on malformed shaders.
    • Fix regression in SSS rendering after principled commit
    • Solve speed regression of classroom scene after principled commit
  • Depsgraph
    • Use proper scene to get frame from for pose constraints evaluaiton

Fixed: 1, Closed: 10.

Week 282: 24th - 30rd April

  • General development
    • Sanitized some threading areas, by avoiding unneeded locks and using some atomic operations to avoid threading conflicts.
  • Cycles
    • Remove re-hashing done in BPT volume code (was done to avoid correlation issues, which is now fixed elsewhere. Gives some % of speedup)
    • Prepared vectorized types implementation for easier extension (just committed patches prepared in a free time. The idea is to avoid having types `ssef` and `float4` which are basically identical nowadays).
    • Fix over-allocation of triangles storage for triangle primitive hair. It was actually causing access to non-initialized memory, which crashed on Windows.
    • Fix image textures were completely broken since recent unlimited textures commit
    • Looked into ways to solve noise of Agent shots. Prepared some hack-patch to blur sharp glossy for out-of-focus regions of the frame. The sampling still needs to be fixed (there are correlation issues)

Fixed: 0, Closed: 2.

Week 283: 1st - 7th May

  • General development
    • Masks: Fix broken animation after adding primitives
    • Worked on DEG proposal for 2.8.
    • Did some help/tweaks for the shots here in the studio to make them easier for render.
  • Bug-tracker work
    • Fix T51412 Instant crash with texture plugged into the Displacement output
  • Cycles
    • Fixed split kernel being broken for CUDA
    • Some simplification and de-duplication of code in CPU/OpenCL sampling.
    • Use render visibility for duplis when Render Layer option in viewport is used. Was a request for the studio here.
    • Fixed memory leaks and crashes after python-configurable passes commit
    • Fix access array index of -1 in SSS and volume split kernels

Fixed: 1, Closed: 2.

Week 284: 8th - 14th May

  • General development
    • Fixed various issues with sequencer interface code
    • Fix missing render update when building without OCIO but having GLSL image draw method
    • Depsgraph: Fix/workaround crash when fcu->rna_path is NULL, causing bunny from the cloud to crash
  • Bug-tracker work
    • Fix T51153 Video duration is detected wrong after FFmpeg update
  • Cycles
    • Properly free memory used by KernelGlobals (regression since some refactor/denoiser work)
    • Use more stable version of integer square root function, solving bug with CMJ pattern when building with Clang.

Fixed: 1, Closed: 4.

Week 285: 15th - 21st May

  • General development
    • Fix memory leak in environment
    • Fix memory leak when saving OpenEXR files
    • Fix crash opening really old files with compositor
    • Finished and published dependency graph design v1 for Blender 2.8
  • Bug-tracker work
    • Fix T51348 Node highlighting is broken
    • Fix T49324 True displacement crashes when shader returns NaN
    • Fix T50109 Blender crash when a "Render Result" as a Texture
    • Fix T49864 EnvMap baking crashes 2.78 if 'Full Sample' checked in AA
    • Fix T50673 OpenEXR multilayer image truncated on save
    • Fix T49981 When camera is on inactive layer, it does not evaluate constraints
    • Fix T51388 Mask moves when zoom is changed in the movie clip editor
    • Fix T51529 Black boxes on a denoising render when using a .exr image as a environmental texture
    • Fix T51070 Cannot scale procedural texture in compositor
    • Fix T51556 Sequencer - White Balance Modifier - Masking is not honored
    • Fix T51537 Light passes are summed twice for split kernel since denoise commit
  • Cycles
    • Optimize expansion of headers in the source for OpenCL

Fixed: 11, Closed: 17.

Week 286: 22nd - 28th May

  • General development
    • Apparently, was a short week, with one day off. Additionally, wasted half a day with embassy and preparing documents which were requested during appointment.
    • Needed to rework fix for for crash loading old files with compositor.
  • Bug-tracker work
    • Fix T51577 ColorBalance strip modifier misses some color input
    • Fix T51308 Bright/Contrast Doesn't respect Pre-multiplied Alpha
    • Fix T51568 CUDA error in viewport render after fix for for OpenCL
    • Fix T51592 Simplify AO Cycles setting remains active while Simplify is disabled
    • Fix T51609 Bake Texture, Margin crashing Blender
    • Fix T50908 Motion Tracker ignored grease pencil mask

Fixed: 6, Closed: 7.

Week 287: 29th May - 4th June

  • General development
    • Image pool: Use memory pool for allocating elements. Solves memory overhead with lots of threads accessing image pool.
    • Displace modifier: Pre-fetch all possible images to image pool prior execution. Avoids global lock on all threads for initial pixel sample.
    • Task scheduler: Optimize subsequent pushing bunch of tasks (solves speed regression with lots of cached objects comparing to old depsgraph)
  • Bug-tracker work
    • Fix T51646 Motion Tracker instantly crashes
    • Fix T51661 Swaping strips does not refresh sequencer
    • Fix T50027 Rigidbody playback and simulation performance regression with new depsgraph
  • Dependency graph
    • Add missing update tag clear for proxy objects (solved majority of speed regression with barbershop files in comparison with old depsgraph)
    • Fix missing relations for objects which are indirectly linked, which was causing wrong order of updates
  • Motion tracking
    • Re-bundle from upstream to ensure code base is perfectly in sync
    • Made sure all tests are passing
    • Was looking into some patches/suggestions about improving our automatic keyframe selection.
    • Lots of cleanups, removal of semi-finished/unused code. The goal is to make code clear enough to work on by anyone.
  • Blender 2.8
    • Gawain: Optimize shader uniform access. Halves shader update latency for Clement (800ms old vs. 400ms after optimization)
    • Worked with Dalai on generic iterator for objects and duplis, and their support for external render engines.

Fixed: 3, Closed: 9.

Week 288: 5th - 11th June

  • General development
    • Spent some time on preparing testbuild1
  • Bug-tracker work
    • Fix T51756 Fix crash when transforming vertices in edit mode
  • Dependency graph
    • Remove dead/unused code, making it more clear to follow
    • Optimized modifiers evaluation, by removing all semi-finished granular updates. Better go granular nodes only when it's absolutely needed. Avoids overhead of depsgraph traversal.
  • Blender 2.8
    • Added Probes to the dependency graph
    • Replace recursion with loops in certain iterators
    • Support rendering objects from dupli-list for cycles
    • Worked on sanitizing the usage of despgraph, bases and such. Still some work to be done.
    • Started working on making depsgraph per-workspace/layer.

Fixed: 1, Closed: 2.

Week 289: 12th - 18th June

  • General development
    • Mainly worked on copy-on-write support for dependency graph. Got alt-a working in Blender2.8 branch. Still some work to be done to support all the tools.
  • Cycles
    • Fixed compilation of mega-kernel OpenCL on OSX (this is currently official combination, OpenCL split still needs work on OSX).
    • Fix race condition happening in progress utility
  • Dependency graph
    • Prepared code to allow having multiple depsgraph per scene, dependent on workspace. Onyl evaluaiton functions for now are modified in a way that they are not using hardcoded scene->depsgraph. Still few places remained tho.
    • Some small optimizations of build process.

Fixed: 0, Closed: 3.

Week 290: 19th - 25th June

  • General development
    • Only worked one day, before going to holidays.
    • Got initial work for copy-on-write committable under compile-time ifdef.

Fixed: 0, Closed: 0.

Week 291: 26th June - 2nd July

  • Was on a vacation in Russia

Week 292: 3rd - 9th July

  • General development
    • Arrived back to .nl on Tuesday, started working on Wednesday
  • Cycles
    • Fixed compilation without Logging and no C++11 enabled.
    • Some simple fixes to avoid passing big arguments by their value (const references ftw!)
  • General development
    • Fix T51955 Changing Auto-IK length crashes Blender (with new-depsgraph)
    • Fix T51980 Motion Tracking - png image files appear in the Blender program directory when using refine
    • Fix T51978 Setup Tracking Scene after Motion Tracking fails the first time
    • Fix T50973 Directional blur node doesn't clamp value if using driver
    • Fix T51991 Disabled for viewport particle system becomes visible after BI render
    • Fix T51977 New depsgraph removes the grass in victor scene

Fixed: 6, Closed: 2.

Week 293: 10th - 16th July

  • General development
    • Fix memory leak caused by node clipboard
  • Bug-tracker work
    • Fix T52011 Border render is incorrect with multiple scenes
    • Fix T51989 Don't set image user offset for movie files
  • Cycles
    • Disable OpenCL clFlush workarounds, brings speedup.
  • Blender 2.8
    • Spent quite some time tracking down crashes of previews. Turned out to be some design issue of Workspace which caused this. For now Dalai committed workaround which makes Blender stable, but need to lay down better design for accessing Scene Layer, Workspaces etc without accessing G.main, or any window manager.
    • Begin work on making depsgraph per-scene-layer. Just some ground work, making evaluation and other functions to NOT use scene->despgraph. More work here when Luca is done with EvaluaitonContext for modifier stack.
    • Initial support of armatures for copy-on-write

Fixed: 2, Closed: 5.

Week 294: 17th - 23rd July

  • Bug-tracker work
    • Fix T52021 Shadow catcher renders wrong when catcher object is behind transparent object
    • Fix T52134 New depsgraph crashes when evaluating several psys on from object
  • Dependency graph
    • Was mainly focused on dependency graph in blender2.8 branch
    • Some preparations to make depsgraph per scene layer (possibly, dependent on window as well).
    • Replaced hardcoded particle setting tagging from looping over all objects/particle settings to use dependency graph relations instead to do tagging and flushing.
    • Made simple animation files to work (testing on agent's walk cycle) when Blender is built with copy-on-write.
    • Made playback of animated node trees
    • Lots of other fixes here and there all over the dependency graph..

Fixed: 2, Closed: 4.