From BlenderWiki

Jump to: navigation, search

Week 16 (September 11th - 15th)


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)


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.

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


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)


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.

  • 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


Upcoming Diagrams


Week 13 (August 21th - 25th)


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.

  • 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)


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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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)


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 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
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)


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

Week 3 (May 19th)


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).

  • 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)


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.


Week 1 (May 5th)


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:

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.

Next week

More draw manager.