User:Sergey/Foundation/2020

Weekly Reports for year 2020

Week 418: 30th December - 5th January

  • General development
    • Another short week due to new year
    • Updated volume regression tests for Cycles (for Manta)
    • Some tasks for the studio (computers, servers, ...)
  • Bug tracker
    • Fix T72820 Linked objects jumping around during render
    • Fix T72821 Crash when ID is removed from post-update callback
  • Next week
    • Increase productivity in tracker/fixes.

Fixed 2, Closed 2.

Week 419: 6th - 12th January

  • General development
    • Depsgraph: Fix wrong ID filtering
    • Fix crash opening specific files (like the one from TT48684)
    • Helped OpenData team with the release of new benchmark launcher
    • Looked into performance issues (TT57936). Will publish updated report later next week.
  • Bug tracker
    • Fix T62311 Metaball animation playback crash
    • Fix T71908 Animated properties are lost after frame-post handler
  • Next week
    • Some studio related duties (dying hardware)
    • Clean up old patches/reports assigned to self
    • Keep up with high priority bugs

Fixed 2, Closed 0.

Week 420: 13th - 19th January

  • General development
    • Depsgraph: Re-iterated over fix for handlers and animated properties. Initial fix caused regression in more commonly used cases, so it was reverted. Actual solution goes somewhere way deeper.
    • Fixes for non-x86_64 platforms for 2.82 for linux distors.
    • Collected updated performance bottlenecks for T57936
    • Meeting with Brecht and Dalai about roadmap for 2020.
  • Next week
    • Some more meetings will likely be needed for roadmap
    • Document performance investigation
    • Make a plan of action for multires, have second pair of eyes (hi, Brecht :) on it

Fixed 0, Closed 0.

Week 421: 20th - 26th January

  • General development
    • Fix wrong DNA alignment on specific architectures (such as arm)
    • Refactored the way external dependencies are communicated to CMake, letting build system to have full dependency graph. Fixing weird unpredictable linking errors, which depend on feature set.
    • Fixed static initialization order fiasco of TBB/MKL.

Fixed 0, Closed 0.

Week 422: 27th January - 2nd February

  • General development
    • Infrastructure maintenance week.

Fixed 0, Closed 0.

Week 423: 3rd - 9th February

  • General development
    • Codesign setup for macOS buildbot builds.
    • Worked around static initialization fiasco between TBB and MKL (appeared when running tests on centOS on AMD machine).
    • Worked on blowing dust away from tracking module, stumbled into some design violations in constraint system. Annoyingly, the change was committed without waiting for any of review.
    • Got pulled into setting up renderfarm workers on Friday afternoon, which escalated a bit into a rabbit hole to hell.
  • Next week
    • Finish fix for Follow Track constraint started on Friday.
    • One of storage/render nodes needs to have hard drive situation figured out (spontaneous SMART errors. Dirty/flackey backplane?).
    • Prepare for the release (make sure tests are passing, prepare packing situation for all sort of stores and so on).

Fixed 0, Closed 0.

Week 424: 10th - 16th February

  • General development
    • 2.82 release week:
      • Investigated new Microsoft Store tooling for packaging
      • Fixed regression tests
      • Baby-sited release builds
    • Started looking into smooth propagation of multires delta to higher levels. Only spent half a day on Friday on this.
  • Bug tracker
    • Fix TT73675 Leaving exit mode tags all objects for update
  • Next week
    • Keep working on smoothing delta for multires.

Fixed 1, Closed 0.

Week 425: 17th - 23rd February

  • General development
    • Solve strict compiler warnings on macOS
    • Worked on making codesign more resilient for possible interrupts
    • Looked into making pre-compiled libraries work on Arch
    • Kept working on multires in a local branch
  • Next week
    • Spend as much time as possible on multires. Goal is to have smooth propagation for reshape operator

Fixed 0, Closed 0.

Week 426: 24th February - 1st March

  • General development
    • Spent all week on multires.
  • Next week
    • Start moving safe-for-2.83-parts to master
    • Get rest of changes testable by artists

Fixed 0, Closed 0.

Week 427: 24th 2nd - 8th March

  • General development
    • Another week of multires. Progress so far:
      • New basement for "reshape" functionality seems to be wrapped up (all the common functionality for Subdivide, Reshape, Apply Base, propagation of edits from sculpt to top level)
      • Subdivide and reshape are ported to the new basement. They might cause some minor artifacts on a really extraordinary cases (like the 2 quads with 2 common edges in the Suzanne's nose). But comparing to 2.80 and 2.79 works rock-solid and keeps shape the same on any of multires levels.
      • Propagation of sculpt edits to top level is also ported to the new basement. Causes minor artifacts in the extraordinary case mentioned above. Compared to 2.80 and 2.79 allows to rotate an entire mesh or its parts and have top level details adopted accordingly (previously, they will not be aware of rotation and will be added in the wrong direction).
      • Tested by Julien Kaspar
    • There is still quite some work to be done to make it really rock solid, but that's for the next week.
  • Next week
    • Update project task, list current limitations and list of things to resolve, put code to a Git branch.
    • Port "Apply Base" to the new code path, solving artifacts happening by this operator.
    • Make sculpt undo system aware of "propagation", which requires being able to undo changes to CustomData layers.
      • This is the biggest stopper so far, as attempting to undo past sculpt level change will no longer propagate properly.
      • Isn't really a new issue (was there since 2.5x), but is really annoying and dangerous.

Fixed 0, Closed 0.

Week 428: 9th - 15th March

  • General development
    • Cleanup: Replace ABS/SQUARE/CUBE with function calls (solves real problem in studio light code)
    • Depsgraph: Fix crash deleting Viewer image from Outliner
    • Some rounds of disk cache review
    • Committed all current fixes for multires (subdivide, reshape, apply base)
  • Bug tracker
    • Fix T74686 Loading btx file in multires modifier is not working
  • Next week
    • Continue (and, hopefully, finish) disk cache review.
    • Review status after multires changes (see if there any bugs reported after the merge).
    • move forward with propagation undo in sculpt mode.

Fixed 1, Closed 0.

Week 429: 16th - 22nd March

  • General development
    • Fixed warnings encountered when compiling with MSVC.
    • Various fixes in multires:
      • Apply Base didn't work correct when there are deformation modifiers prior to multires
      • Apply Base was randomly distorting mesh with shapekeys
      • Support subdivision and propagation for base meshes with creases
      • Fix non-working Simple type subdivision
      • Disallow changing mode and quality after subdivision
      • Fix assert when removing modifier in edit mode
  • Bug tracker
    • Fix T74322 Wrong object bundles with scaled camera
  • Next week
    • Need to look into some dependency graph fiasco for the studio
    • Carry on with the tasks mentioned in the multires (T73317)

Fixed 1, Closed 1.

Week 430: 23rd - 29th March

  • General development
    • Fixed wrong threading usage in sound area poked from depsgrapgh
    • Multires:
      • Enable Optimal Display by default.
      • Fixed possible interference between Apply Base and sculpt mode.
      • Worked on support Undo for Apply Base during sculpt mode (same code would be used to undo propagation on sculpt level change).
    • Fixed build on macOS 10.15.4 and Xcode 11.4.
    • Fixed other legacy and annoying aspects of CMake on macOS.
    • Quite a bit of non-code work (like meetings),
  • Bug tracker
    • Fix T74984 Crash opening specific production files
  • Next week
    • Get the Undo patches reviewed. They are tiny, so should be quick
    • Support Undo of propagation (which is a bit of a challenge since propagation happens on property change, not on operator)

Fixed 1, Closed 0.

Week 431: 30th March - 5th April

  • General development
    • Commented overall idea of undo stack implementation for sculpt mode (all the knowledge which had to be gathered together during the previous week is now put in the ocmment).
    • Refactor of some aspects of undo stack in sculpt mode: made it so it's possible to easily have base geometry and PBVH coordinates to be mixed together in the same undo step.
    • Worked on propagation undo. Have a first pass over the patch which implements it. Some cleanup and much more testing is required.
    • Reviewed Joeroen's optimization tasks.
  • Next week
    • Put "Apply Base" undo to the code review (with all the followups to address feedback and such)
    • Put propagation undo to the code review
    • Look into Apply Base with simple subdivision (there is a bug in the tracker)

Fixed 0, Closed 0.

Week 432: 6th - 12th April

  • General development
    • Tracking: Fix slow undistored display
    • Tracking: Fix (un)distortion happen in single thread
    • Tracking: Fix missing distortion update on focal length change
    • Tracking: Forward compatibility code for distortion models
    • Gave a first pass of review of D7372: Sculpt: Multires Unsubdivide
    • Split multires undo patches, currently only undo for "Apply Base" is under review. Propagation undo goes deeper into rabbit hole to hell.
    • Started Subdivision Surface design document
  • Bug tracker
    • Fix T75297: Apply base inflates meshes with Simple subdivision
    • Fix T75371: Crash using object.to_mesh() when in edit mode
  • Next week
    • Finish subdivision surface design document
    • Start multires design document
    • Apply fix for undo of "Apply Base"

Fixed 2, Closed 0.

Week 433: 13th - 19th April

  • General development
    • Documentation and code review week:
      • Gave a second pass on subdivision surface documentation together with Francesco.
      • Wrote an initial pass for multiresolution documentation
      • Reviewed 10 patches in pair review with Campbell
      • Reviewed patches from Pablo and Sybren
    • Updated propagation undo patch for latest changes in master
  • Next week
    • Find a solution for propagation undo when active multires modifier used in sculpt changes
    • Give it a pass for depsgraph documentation
    • Spend some time working on lens distortion for motion tracking (new model for interoperability is coming)

Fixed 0, Closed 0.

Week 434: 20th - 26th April

  • General development
    • Cleanup and refactor of bundle adjustment code in Libmv
    • New distortion mode is submitted for review D7484
    • Code review session with Campbell
    • Reviewed quite a bit of patches and submitted few bug fix proposals in the bug tracker
  • Bug tracker
    • Fix T75697 Multires in simple mode doesn't work correct on a plane
    • Fix T75631 New multires shrinkage problem
  • Next week
    • Find a solution for propagation undo when active multires modifier used in sculpt changes
    • Give it a pass for depsgraph documentation

Fixed 0, Closed 0.

Week 435: 27th April - 3rd May

  • General development
    • Mainly code review week, both pair review with Campbell and reviewing patches in own areas.
    • Put new distortion model to master.
    • Solution for multires ended up requiring a bigger redesign task, need to write down findings and solution proposals and discuss viability/priority with the team.
    • Didn't have time for the planned documentation from the last week.
  • Next week
    • Documentation for multires/sculpt undo, depsgraph documentation.
    • Join forces of the bug tracker :)

Fixed 0, Closed 0.

Week 436: 4th - 10th May

  • General development
    • Was a shorter week than usual due to the liberation day.
    • Was spend on the bug and patch tracker: looking into issues, giving suggestions, answering questions.
    • Some time was also spent as a studio support.
    • Worked with Zack, so he can help with the documentation.
  • Next week
    • Keep working in the tracker.
    • Some extra time would need to be spent for the studio.
    • Keep working with Zack.

Fixed 0, Closed 0.

Week 437: 11th - 17th May

  • General development
    • Cosmetic and sanity fixes in multires for 2.83 (corrected NULL pointer check and simple things like that).
    • Fixed in multires mask interpolation (was doing wrong weights for linear interpolation).
    • Fixed masks propagation when changing multires level.
    • Fixed missing dependency graph update when converting curve<->mesh.
    • Libmv: Fix crash solving when having negative frames.
    • Spent quite some time replying in the tracker about how to approach specific reports (combined with patches review for the fixes).
  • Bug tracker
    • Fix T74713 Unpredictable active texture node for Workbench
  • Next week
    • Same plans as for the previous week.

Fixed 1, Closed 3.

Week 438: 18th - 24th May

  • General development
    • Fixed access past allocated buffer in AVI MJPEG codec
    • Alembic: Fix bad allocation with invalid knots data
    • Remove legacy OpenSubdiv code from CCGDerivedMesh
    • Reviewed quite a bit of patches (would really need to keep track of those =\)
    • Majority of remaining time was spent on fixing OpenSubdiv integration which caused very bad performance (T76855). Got a patch, need to get it reviewed from idea level since it increases memory footprint.
  • Bug tracker
    • Fix T76573 Make links with Multires leading to crash
    • Fix T76721 ASAN crash on animation rendering
  • Next week
    • Finish OpenSubdiv performance fix
    • Keep working in the tracker

Fixed 2, Closed 0.

Week 439: 25th - 31st May

  • General development
    • Reviewed quite a bit of sculpting patches
    • Finished the OpenSubdiv integration fix, gaining small performance improvement for all meshes, and big improvement for certain meshes with non-manifold geometry.
    • Started removing code which is related to CCGDerivedMesh. Got stopped by multires bake.
  • Bug tracker
    • Fix T65889 Hair Particles not updating when using image sequence
  • Next week
    • Port multires bake to new the multires system
    • Will be short week: holiday + cleanup day.

Fixed 1, Closed 0.

Week 440: 1st - 7th June

  • General development
    • Short week due to the national holiday on Monday.
    • Wednesday was spent on helping with getting builds done, signed, tested.
    • Friday was Code Quality day, wrapped up the CLang-Tidy configuration and proposal (D7937).
    • Rest of the time was spent on bake from multires code, porting it to the new system. About 80% is done.
  • Next week
    • Finish with the multires baking code.
    • Module planing/roadmap/development.
    • Infrastructure related work (changes on buildbot for LTS and updates for C++17)

Fixed 0, Closed 0.

Week 441: 8th - 14th June

  • General development
    • VFX & Video module work, initial pass in organizing workboards.
    • Keep reviewing Sculpt/Multires patches.
    • Buildbot maintenance (hardware problems, preparing for LTS and C++17).
  • Bug tracker
    • Fix T77448 Camera Solver constraint can't be converted to f-curve
    • Fix T69497 Color Correction node ignores mask in certain cases
  • Next week
    • Wrap up buildbot work
    • Have clear 2.90/2.91 roadmap for VFX & Video module

Fixed 2, Closed 0.

Week 442: 15th - 21st June

  • General development
    • Usual code reviews in the mornings.
    • Finished buildbot work, so now it can do C++17 for master and be usable for LTS as well.
    • Switched Blender to C++17 (with all the required changes in the code).
  • Bug tracker
    • Fix T67358 Compositor Disabled Node Config -> SegFault
  • Next week
    • Catch up with the module work, especially the backlog.
    • Go back to multires baking.

Fixed 1, Closed 0.

Week 443: 22nd - 28th June

  • General development
    • Caught up with backlog in the VFX & Video module
    • Regular code reviews for sculpt and dependency graph
    • Deployment of developer.b.o with support of canned responses
    • Updates for builder website to support LTS releases better
  • Next week
    • Sequencer planning for 2.91 / 2.92 (some design docs coming)
    • Keep looking into multires bake (the bake to non-base-mesh is a bit tricky)

Fixed 0, Closed 0.

Week 444: 29th June - 5th July

  • General development
    • Maintenance on the codesign code, make it more resilient to startup.
    • Switch BLI and Cycles to spin lock from TBB. Addresses deprecation warning using macOS SDK 10.12.
  • Bug tracker
    • Fix T67358 Fix T78264: Auto Render stops working after rendering manually.
    • Clang-Tidy integration, followed by joined forces to address a lot of warnings during the Quality Friday.
  • Next week
    • Plans from last week moved here.

Fixed 0, Closed 0.

Week 445: 6th - 12th July

  • General development
    • Fixed DNA alignment issue for all ARM arhcitectures (armel, armhf, arm64)
    • Platform maintenance for macOS and Linux. All the libraries are updated now and committed to SVN.
  • Next week
    • Plans from last week moved here.

Fixed 0, Closed 0.

Week 446: 13th - 19th July

  • General development
    • A lot of non-code work, server maintenance
    • Code reviews for sculpt, Cycles, dependency graph
    • Put all design decisions about VSE in the studio to a task T78986
    • Friday got back to multires bake, have some local progress, but is still not ready for baking to non-base-level
  • Next week
    • Support multires bake to non-base quads (finishing the code from Friday)
    • Come up with a concrete plan for VSE project
    • More code review

Fixed 0, Closed 0.

Week 447: 20th - 26th July

  • General development
    • Fix interface artifacts on Intel GPUs on macOS
    • Code review for dependency graph, multires, sculpt
    • Started with simple tasks for VSE project
  • Bug tracker
    • Fix T78867 Crash related to viewing video files
  • Next week
    • Publish VSE scene for benchmark
    • Start with bigger topics of the VSE project
    • Somehow balance with the multires work

Fixed 1, Closed 0.

Week 448: 27th July - 2nd August

  • General development
    • Typical rounds of code review
    • Had limited time to work on the topics from the last week, as the time was spent on fixing VSE+depsgraph+undo bug
  • Bug tracker
    • Fix TT78586 In compositor image previews inside nodes don't update/refresh when they should
    • Fix TT78835 Ghosting audio after using undo
  • Next week
    • VSE topics from the last week.
    • Make depsgraph+pose channels undo fully reliable (currently it could run into similar problems to the audio in sequencer)

Fixed 2, Closed 0.

Week 449: 3rd - 9th August

  • General development
    • Typical rounds of code review
    • Fix render issue on Cycles GPU with motion blur and particles
    • Cover pose channels with session UUID (preventing depsgraph + undo mappign runtime data to the wrong channels)
    • Submitted a patch for session UUID for modifiers
    • Friday was the quality day
  • Next week
    • Start on the VSE project
    • Look into tracker's distortion model refine

Fixed 0, Closed 0.

Week 450: 10th - 16th August

  • General development
    • Typical rounds of code review.
    • Cover modifiers with session UUIDs (solving possible issues with depsgraph+undo).
    • Sequencer: Implement zoom-to-fit view mode.
    • Sequencer: Looked into enabling microarchitecture for pre-compiled FFmpeg. Seems to give very nice speedup.
    • Looked into distortion mode. The issue is not in distortion mode, but in the way how tracker works with very-wide-lens in general.
  • Bug tracker
    • Fix T79563 Compositor's Stabilize 2D in invert mode does not work correctly
  • Next week
    • Finish the FFmpeg microarchitecture, re-compile Linux libraries
    • Carry on with the sequencer project. Will likely be spending time on design doc for the cache and how to bring it back under control.

Fixed 1, Closed 0.

Week 451: 17th - 23rd August

  • General development
    • Typical rounds of code review.
    • Committed SSE optimization for FFmpeg
    • Created a patch to improve threading of FFmpeg I/O, D8627
    • Looked into threading other hot areas of FFmpeg. It is probably doable, but the FFmpeg is very limiting in that case.
  • Next week
    • Design documentation for the VSE cache

Fixed 1, Closed 0.

Week 452: 24th - 30th August

  • General development
    • Typical rounds of code review.
    • On top of them, some reviews for 2.90 release
    • Initial pass on VSE Cache design. Will publish on Monday so that feedback can be handled faster.
  • Bug tracker
    • Fix T80035 Fix crash switching/adding scenes

Fixed 1, Closed 0.

Week 453: 31st August - 6th September

  • General development
    • Typical rounds of code review.
    • Worked on the VSE cache design (T80278)
    • Minor fixes in the code and quality days activities
    • Infrastructure related tasks

Fixed 0, Closed 0.

Week 454: 7th - 13th September

  • General development
    • Multires: Fix memory leak when multires is at level 0
    • Implemented art-directable hair style for the studio (via rigging the mesh and copying the strands to the hair system) https://developer.blender.org/D8849
    • Worked on making buildbot system more resilient to intermittent problems
  • Bug tracker
    • Fix T77763 Wrong highlight of active grab vertex

Fixed 1, Closed 0.

Week 455: 14th - 20th September

  • General development
    • Platform maintenance for Linux
    • Infrastructure tasks (buildbot and develoepr.b.o)
    • Patch reviews for Cycles, sculpt, VSE
    • ID properties support for timeline markers
    • Tuesday meetings

Fixed 0, Closed 1.