From BlenderWiki

Jump to: navigation, search

Week 24 (October 6th - 10th)

Info

Spent most of the week paying some old technical debts. Now we have no more BaseLegacy, Scene.basact, Scene.base anywhere in the code. Also finished and merged the ID Nodes iterator Depsgraph: patch. And other sorted fixes while handling the cleanups. Finally handled doversion for 2.79 files that have hide and hide_render objects. Rendering now is the same as it was (Cycles unittests all pass now).

Note: Decided with Sergey Sharybin that the Groups and collection Patch can wait until more technical debt is taken care of. Also we decided to have it simpler first (without Group Collections, but still using LayerCollections as the way for groups to handle their internal members and visibility), and then approach this afterwards.

Relevant 2.8 Commits
Master Commits
  • Fix: unselectable objects can be selected via the NLA editor ee49ee24c33.
  • Fix logic for pinning textures users from context 92b342d30d3.
Next week

More cleanups, specifically to move the data from SceneRenderLayer into SceneLayer. Followed by trying to merge Groups and collection. Bastien Montagne proposed to change how groups handle user count, so I may look at that before wrapping up the patch.

Week 23 (October 30th - 3rd)

Info

More work on finishing the Groups and collection Patch. Short week due to holidays.

Relevant Commits
  • Prevent users to be able to override context engine 0dd98af2559.
  • Workspace cleanup: engine_id is in ViewRender bbb4fa7e476.
  • Collections: Bring back simple visibility behaviour 7553523af7b.
  • Introduce "skip" in BLI_Iterator struct 16f06e9dc9f.
  • Fix renderlayers UI removing the wrong renderlayer 7aabe3f66ca.

Week 22 (October 23th - 27th)

Info

Sorted fixes in 2.8, long overdue refactor in rna (moving layer code from rna_scene.c to a new rna_layer.c file), patch to handle depsgraph objects iterator differently and finished up most (not all) work required for the "Groups and collection" patch. Note I decided not to do the "list" with all the required UI tasks, because during the UI team meeting, Julian Eisel said he will do it himself.

Relevant Commits
  • Showing Clay collection settings when clay is the workspace not the scene engine 4de8e12adac.
  • Fix freestyle UI after workspace > engine changes 86899c1adf1.
  • Fix T53156: VSE not working since Workspace > engine change 6b739bc2dcd.
  • Fix T52392: Node materials (Materials and World) not updated in viewport 005cb901133.
  • Fix non-instanced groups in no-collection file creating collections. 7484c6c5ee6.
  • Refactor: Move rna_scene.c layer/collection to rna_layer.c 23a5726ec28.
Work in Progress Patches
Next week

I want to spend the begin of the week (Monday/Tuesday) with Jonathan William to see if we can make good use of his time in Amsterdam. Also hopefully there is some review in the ID Nodes patch so I can tackle and merge it. And I would love to finish the group collection patch and send for review. That said, Thursday is holiday here and I'm taking Friday off, so it's a short week.

Week 21 (October 16th - 20th)

Info

I helped putting together a week-by-week planning for Depsgraph with Sergey [1] and Asset and Static Override with Bastien [2]. I then finished and committed the patch for engines to be part of workspace [D2842]. Next I started working on my three parts patch for groups and collections [D2892]. Meanwhile I fixed/reported a few bugs in 2.8 related to group proxies. Group proxy, make dupli real are all working now. Finally I helped testing and reviewing Brecht's patch: "Multiview OpenEXR save/load refactor and fixes" [D2887].

Relevant Commits
  • Fix/properly implement: "make group proxy" fc10484f7c5.
  • Follow up to engine in workspaces, using clay as default 0bcb61b2fe9.
  • Fix crash when Making Duplicates Real for groups 5aff67fb5ee.
  • Layers: Fix selected lamp and dupli count for info stats 028a558116d.
  • Fix for objects trailing in viewport when using BI in scene+Eevee in workspace 314542ffd4c.
  • Workspace: Move engines to workspace and Properties Editor cleanup e4f2b2be26a.
  • Fix compatibility flag for nodetree e8962f90de4.
Work in Progress Patches
Next week

I would like to put together a list with all the feedback we need from the UI/design team. With most of the planning out of the way (save from my own planning for workbench) we can have a better picture of what the bottlenecks are, and stimulate the design team to jump in. Apart from that I would like to finish the group collection patch entirely, so that I can move to polishing collection usability (even if we still miss final mockups for the UI).

Week 20 (October 9th - 13th)

Info

Fixed Cycles material preview, helped Campbell Barton with 101 roadmap, ported Blender 2.8 Design Document to wiki, discussed how to handle collection visibility a lot with Sergey Sharybin and Pablo Vazquez, and prepared a patch with suggested options and worked on my wokspace -> engine patch.

Commits
  • Fix T53014: Cycles material preview not working
Pending Patches
  • Bring engines to workspace and UI sanitize D2842
  • Layer evaluation --set-advanced-collection-evaluation D2878
Next week

I want to finish my patches, and help getting asset manager or depsgraph a roadmap as well.

Week 19 (October 2nd - 6th)

Info

First week working remotely. No proper weekly report. Things will be back from normal from now on.

code.blender.org post
Next week

Now that the technical design doc is published, I want to wrap up pending patches related to new design (engine in workspace, collection hide/render flags, collection groups) and fixing material previews.

Week 18 (September 25th - 29th)

Info

Last week working from the Blender Institute. No proper weekly report.

Week 17 (September 18th - 22th)

Info

Finished with Pablo and Ton the code.blender.org post about collections. Also Eevee was really broken (T52855 since last week so I spent some time working with Clément to fix it. So we could present the new splashscreen with everything working. Started the implementation of collection enable/disable. Finished the week with a meeting with Bastien, Brecht and Sergey about 2.8 related design.

Commits
Pending Patches
  • Build Info: Splash screen color change D2852
  • Collection enable/disable: use camera visibility as behaviour D2851
code.blender.org post
Next Week

Friday I will be gone, and I will spend some time during the week wrapping up my stay here (city hall, bank account, ...). But I will update the design doc, and update the patches based on the design meeting feedback. Hopefully will get those patches (workspace engine and collection visibility/renderability) merged by the end of the week.

Week 16 (September 11th - 15th)

Info

Meeting about grease pencil on Tuesday. Thursday and Friday with Clément Foucault at the studio, defining the Eevee roadmap. And more coding work for the workspace engine changes, submitted for review on D2842. Which lead to time spent communicating the new design proposal, including a length back and forth at D2842. Also started own roadmap for upcoming 2 quarters.

Branch: `temp-workspace-changes`
  • Use engine from context/render in more places 8cafa42a91a.
  • Fix engine context in Cycles cb259dc0442.
  • Store engine_name in render struct and use it for render preview 02bc44c5ab2.
  • Workspace/Engine: Create BKE_render_* calls equivalent to BKE_scene_* fff4ab55578.
  • Fix UI compatibility to use context.engine 7215830df90.
  • Use workspace engine for draw manager "render preview" efec3b097b8.
Patch reviewed, pending addressing suggestions
  • Bring engines to workspace and UI sanitize D2842.
Grease pencil
6 months roadmap

Week 15 (September 4th - 8th)

Info

Final take on re-visiting the viewport design in light of the workspace implementation. Developed the final treatment on this with Ton Roosendaal and Pablo Vazquez. We will have this as properly formatted documents this week. After that I started some of the implementation regarding workspace changes. It's in a branch since I would like the design to be review by other developers before we bring this to 2.8.

2.8 Commits
Branch: `temp-workspace-changes`
  • Expose scene > engine in the UI (render panel) a62a1e4.
  • Use workspace -> engine in the opengl render f46edd0.
  • Use workspace -> engine in the viewport 6537660.
  • Collection Panel: Get mode from workspace f0ccf03.
  • Context: Expose "engine" for Python and add BKE_render_engine_get() fda4f87.
  • Properties Editor: Add Workspace and organize context path f14c7a7.
  • Workspace: Add (render) engines 60081b0.
  • Workspace: SETLOOPER should get render layer from workspace a2a3e04.
  • Pass workspace for space listeners bb8f2c5.
  • Workspace: "use_scene_settings" flag ddf95cc.
Images

Diagrams illustrating the move of toolsettings and draw settings from scene, viewport, object and data structs to workspaces.

Dev-2.8-design-object-edit-mode-diagrams.png

Upcoming Task List
  • Enable collection
  • Outliner filter
  • Viewport collection editor
  • "Group" collection
  • Move tool and display settings to workspace
  • Have engine render settings per workspace
  • Modes data flush for workspaces
  • Workspace UI: topbar, properties editor and viewport
  • Current frame in workspace
  • F12 layers are the enabled ones

Week 14 (August 28th - September 1st)

Info

Finished the previous design document, ported it to wiki. Worked in the tracker (triaging and bisecting). Worked in design of Object and Edit mode data (see diagrams below). And few sorted commits.

Commits
  • Increase max/min frame range to over a million 44e10a5.
  • Eevee: Fix conditional statement depending on unitialized value 698bae0.
  • First take on fixing OpenColorIO issues on Mac 510651e.
Addendum to last week's design

Dev-2.8-design-worskpace-render.jpg

Documentation
Upcoming Diagrams

Dev-2.8-design-engine-settigns-diagrams.jpg

Week 13 (August 21th - 25th)

Info

I worked in usability design for scene organization and workspaces. The document will be in the wiki soon. Apart from that I took a day to do 2.8 coding, and tackled the orco generated texture mapping.

Commits
  • Revert "material Glsl: Fix tangent with new orco." ae04e27bfa5
  • Fix T52528: generated texture mismatch between Cycles and Eevee 0feeef89f06
  • Revert "Eevee: Fix generated coordinates when no texture coordinates connected" 99b1f9f4f46
  • Fix ORCO never used for draw manager (Eevee) 4e975b6b442
  • Eevee: Fix generated coordinates when no texture coordinates connected 0e29a97813d
  • Cycles Bake: Fix overflow when using hundreds of images 1fb26370067
  • GL_TEXTURE_2D_ARRAY wasn't handled in GPU_texture_update d7b3e33af43
  • GPU Texture: Use switch instead of if/else 9457715d9a6
Usability design proposal

Week 12 (August 14th - 18th)

Info

Back from holidays. Eevee planning and eevee sample file organizing not included in this report. Preparing the room for moving on to usability next week.

Commit
  • Eevee: Convert metallic nodes into princinpled nodes 036f43f3cde
  • Swap Eevee material output with (Cycles) Material Output e8f0ee157b2
  • Expose Transparency BSDF for Eevee UI 8ab6e8aad62
  • Uniform Buffer Objects: More complete padding solution 2dad2aa9b7d
  • Fix ubo vec3 alignment issue f4bd416b342
  • Fix zombie manipulators when deleting collection from outliner a4068d00830
  • Fix T52415: Copy/Pasting a mesh immediately crashes blender 6bca0dcf7bd
  • Update code comments from DAG_id_tag_update to DEG_id_tag_update 2b95617b152
  • Depsgraph/Layers: Keep original visibility when doing full scene copy 18ce2bfac63

Week 11 (July 10th - 14th)

The highlight of this 4-day week was the Uniformbuffer block for nodetree parameters. That means you can tweak shaders in the nodetree and things are way faster. This is a huge improvement, particularly in systems that have no shader cache (e.g., Mesa drivers on linux). Apart from that we sanitized some of the workspace issues, and fixed some breakages.

Commit
  • Implement Uniformbuffer objects for nodetree parameters 2a489273d7e
  • Fix snap in 2.8 after poor merge from master 4467efe9716 0ea4bb51df9
  • Revert "Fix T51794: Crash on hair file when opening with no UI" 78e2238fe4c
  • Workspace: Fix crash on preview, and sanitize placeholder functions b48694639af
  • Eevee: Fix crash on eevee lamps and shadows 445963f2997
  • RNA/UI: Always use capitalized words in the UI e5d74954bfe
  • Lamps should not have their own gpu material 2325d15d02e
Next Week

It's my last week before holidays. So I'm either tackling something big (groups as collection? multi-window?) or trying to pin down usability and other pending topics for the team to tackle in the upcoming weeks.

Week 10 (July 3rd - 7th)

Apart from the listed commits and fixes, I worked on bring UBO (Uniform Buffer Objects) for nodetree inputs. That means we can have shader tweaking and animation work fast, without compromising the drawing performance. This is yet not finished though.

Commit
  • Fix T51963: Eevee: ASAN crash on copy_attrib_name 871325e26f
  • Eevee: Hide lightprobe data when using "Only Render" 1ad0cc6bde
  • Fix building with gcc6 after merge from master 3fc342bda0
  • Fix alembic after merge from master 3eeac771d0
  • Fix edit mode not drawing e571e6d60e
  • Eevee: Fix world test for volumetric 84d20dd227
  • Expose rna_translate_ui_text to be used for interface templates eb48eeba84
  • Override template: Add text and icon optional parameters 6de28e7f90
  • Eevee: Move volumetric to its own panel, new settings to come 971ecfa721
  • Fix User Interface for Volumetric 5495f89cf6
  • Draw Manager: Use defines instead of hardcoded enum values 15f5457502
  • GPU: Silence warning of potentially unused variable (NormalMatrix) e960cecdf8
Live Stream
Next Week

Finish tweaking shader and animation updated uniforms patch. And then decide on what is more important next.

Week 9 (June 26th - 30th)

We now can export renders from viewport, get a decent performance when adding lamps, changing the world, ...

Although some of this was thanks to my own fixes most of it was thanks to bug reports. I spent time on "quality assurance". Which translates to test the features that the team was implementing, and make sure they are 100% working, or if not, at least reported. That included reports for Eevee, Draw Manager and Gawain as you can see below.

Commit
Uncommitted
  • D2732: Alternative Fix T51877: Deleting a scene uses freed memory.
Reported Bugs
  • T51904: Eevee Depth of Field: Issues with opengl viewport render.
  • T51913: Context tab for textures issue.
  • T51920: Draw Manager: Set Origin is not updating mesh cache.
  • T51921: Gawain assert with heavy mesh when selecting vertices on edit mode.
  • T51922: Eevee: Probe and AO issues.
  • T51924: Eevee: Mysterious square shows up in spot lamp.
  • T51925: Eevee: Animated Eevee values slowdown.
  • T51931: Eevee: Tangent normal map refresh issue.
  • T51938: Draw Manager / Eevee: Sculpting mode doesn't have fancy shaders (UVs show black).
  • T51939: Eevee / Draw Manager: Tangent not available in sculpt mode.
  • cdb07ff30e: Eevee: broken default coordinate.
  • T51943: Depsgraph: world update happening eternally on background (set) scene
Next Week

Since I didn't dedicate time to work on render/material preview with Eevee, I would like to do it this week. As well as define with Sergey an attack plan for the uniforms issue.

Week 8 (June 19th / 23rd)

Mixed mixes and UI changes. Focus on rendering to image pipeline and Eevee shader compilation issues. Some grease pencil work to support the studio sequencer pipeline needs (see c2d285f0ff and D2722).

For the shader compilation issue (T51467) I created an opengl sandbox to help isolate the problem from Blender. See link below.


Commit
  • Fix T51863: CompositorNodeSwitchView have the wrong rna API be4b5551c7
  • Grease Pencil: Fix hardcoded DKEY for continous drawing c2d285f0ff
  • Fixup for gawain rename 701a76769d
  • Fix collada build after gawain rename/refactor 63d71edfca
  • Draw Manager: Introduce functions/options to indicate the type of render 0ef7ccb4d7
  • Indicate to users when manual conversion of Eevee materials is needed 7773a8ad04
  • Light Probes: interface changes, and renames 4cd9a3e337
  • Eevee: Interface and units d9c5433144
  • Eevee: Fix max range of lightprobes 5b2e596ce9
External Repository
Next Week

Handle anti-aliasing situation for viewport render, investigate the shader issue a bit further, and do render/material preview for Eevee.

Week 7 (June 16th)

Started on render_to_image. But spent most of the week on more fixes, setting up an Intel development machine to reproduce the issues there (try new drivers, ...), fixed group collection proposal document, helped Grease Pencil project, and organized the reports on 2.8 workboard.

Commit
  • Depsgraph: Traversing should be consistent for nodes and relationship 8ca497b911
  • Draw Manager: Fix memory issues when copying scene 109447d008
  • Fix T51777: Separating objects by selected vertices in Eevee causes crash 47b9d0d0403
  • Grease Pencil: Fix problems linking object with Pallete 8d3e2af877.
  • Fix T51463: Eevee motion blur not working (with AMD) 1a7099f3ec.
  • Fix duplication of scene, it was missing duplication of layer properties cd21236ea1
  • Expose World ID panel for Eevee 281a4540e2
  • Fix object selection doversion issue since Workspace 946bc4d3c1
Next Week

More 2.8, finish up render_to_image.

Week 6 (June 9th)

A short week (Monday was holidays). I spent mostly finishing up dupli instancing issues (there are still some issues with using stack data). Multi-window investigation consumed some time (created a [non-committed] debug engine for that). See discussion in the investigation link.

Commit
Design
Investigations
  • T51736 Drawing issues when running in multiple windows
  • T51722 Background updating error in Eevee
Next Week

Finish the dupli group design, publish and start implementing it. Then pending tasks from previous week(s): tackle render_to_image/render_to_view and clear my coding agenda as much as possible to start usability issues in Draw Manager/Blender 2.8 viewport.

Week 5 (June 2nd)

Info

Wrapped up the core of dupli objects, implemented append, master Cycles baking bugfixing, blog post and documentation writing, grease pencil meeting, and overall cleanups.

Also spent some time trying to get unittests to work again. One of Eevee and workspace commits made multiple layer related unittests to fail. Leading to crashes on hair among other issues.

Some time on reviewing 2.8/Eevee progress and reporting issues, such as T51464 and T51465.

Commits
Commits Master
  • Fix T49570: Cycles baking can't handle materials with no images 2cd7b80cae6
  • Baking: Add logic to get material from API regardless of Mesh/Object ownership 9cae631059c
Publications
Next Week

Finish Cycles dupli objects (or rather, review Sergey's work on it), investigate multi-window issues (clay/Eevee), render_to_image/render_to_view, and start to focus on usability, polish and finish up viewport mockups and designs. If time allows, I would like to stress test workspaces too, at least see if I can fix the crashes on the unittests.

Week 4 (May 26th)

Info

No report, spent the week with Clement on Eevee documentation, optimization and planning.

Week 3 (May 19th)

Info

The original plan of bringing render_to_image and render_to_view to draw manager was not successful. I ended up spending most of the week on fixes and cleanups.

As far as new features goes we got Freestyle working for 2.8 (with Cycles). This way we can also remove the Freestyle derivedmesh related code and keep testing to make sure it still renders fine in Cycles (and in the future with the other draw manager).

Commits
  • Fix T51501: Cycles baking cancel affects baking script b60f80e9b3
  • Fix info header stats to iterator over layer instead of scene 1e31127933
  • Fix hair width changing e43597446e
  • Clay/Hair: Only show hair when in object mode b11168c8f1
  • Outliner: Bring back "activate" object when selecting from outliner 15317775c5e
  • Clay hair: use builtin reflect function fca52c42ae
  • Fixup on weightpaint shader after rB{{GitCommit|fabd55a5e9} c8e96a8b6b
  • Freestyle working for Blender2.8 c55c2dbfba c2191912ca
  • Fix crash when adding Torus in edit mode 4525357a3a
  • Fix crash when changing Clay "Edge Strength" 3af8f52752
  • Remove "Modern Viewport" 740f33d8a2
  • Remove viewport shading panel 781e22c2df
  • Correct core profile way of getting color depth bad8b91fd3
  • Remove reference to WITH_GL_PROFILE_CORE 60fc04fb9b
  • Remove reference to SUPPORT_LEGACY_MATRIX 3527739002
  • Remove reference to WITH_LEGACY_OPENGL 2383667a2e
  • Remove unused functions after WITH_LEGACY_OPENGL cleanup 8975ad7a88
Next Week

Since Clément is going to be here next week time will be spent on planning next steps for Eevee and the draw manager. Apart from that I still want to finish the render_to_image/render_to_view for draw manager.

The idea is to use F12 to always draw the current workspace with "render_to_image", and no extra engine/modes. Then to keep the "viewport render" (formerly known as OpenGL render) and also do a render_to_image, but including all the extra mode/engines being used.

Week 2 (May 12th)

Info

Fixed multi-view single camera mode in master and 2.8. This is the most common mode to use when working with multi-view, and had problems with selection, grease pencil, 3d cursor placement, and transform manipulators.

Expanded override interface to take arrays. That means color override properties are now supported.

Some time on reviewing Eevee progress and reporting issues, such as T51695 and T51694.

Addressed concerns and move the Override Manifesto to the wiki. And then I wrote a document on Draw Manager Possibilities, to guide mockup designers and developers.

Commits
Publications

Week 1 (May 5th)

Info

The main task of this week was to integrate Cycles with the draw manager. This means using Cycles and object engine (selection outline, object center), edit engine (mesh overlay), weight paint, ...

This can be seen on youtube: https://www.youtube.com/watch?v=UwarUj_Y6J0

On top of that, we now have a info system that can be used not only for cycles in the viewport, but also by any other engine at the same time.

Also I brought the pose bone drawing as part of the pose engine (so it works with the weightpaint engine as well).

The way we handle collection properties at read time was rethought. So now you can add new properties for any engine and get them automatically integrated into the existing elements. Without the need of version bumping for every elements.

And finally I implemented scene render settings. This means that engines can define their render settings in the scene level, and override them at the layer level. An example is the "samples" quality of clay shaders. Eevee is expected to use those as well.


Commits
Next week

More draw manager.