User:Dfelinto/Reports/2017

December 25-29
Implemented more of the design for collection editing as proposed here:. That includes a change in how we auto-name collections, support to collections with the same name (nested under different collections), sorted fixes, and an addon to try the idea of editing the collections in the object level.
 * Info

Add-on for per-object collection editing:




 * Master Commits
 * Fix T53513: Particle size showing in multiple places.


 * Blender 2.8 Commits
 * Depsgraph: Fix copy-on-write assert when freeing Freestyle config.
 * Fix T53638: View layer renaming crashes 1/2.
 * Fix T53638: View layer renaming crashes 2/2.
 * Collections: Allow collections from different "parents" to have the same name.
 * RNA: scene_collection.collections.new name optional.
 * Context: Fix scene_collection.
 * RNA cleanup: Argument names + tooltip for scene_collection.collections.remove.
 * Fix T53647: Outliner crashes when active object is deleted.
 * Outliner/Collection: Operator to create (nested) collections.
 * Outliner/Collection: Operator to delete selected collections.
 * Outliner/Collection: Interface for Master Collection Tree.


 * Addon
 * Object collections manager

More work in the implementation of the collection editing design.
 * Next week

December 18-22
Tackled extensive review changes (thank you Sergey) for the now committed Duplicator viewport/render visibility patch. This concludes the implementation of the Collections visibility settings Design Task. This was followed sorted commits, including a fix/feature required by Hero, to bring alpha transparency render for Eevee and Clay (the spotted image of the week) and initial collection editing related commits. Finally I wrote and posted a full Blender 2.8 report in the code blog.
 * Info




 * Blender 2.8 Commits
 * Fix T53583: Crash when instancing a group with an armature.
 * Fix T53442: Outliner refresh issues when adding new collection.
 * Fix for T53599: OpenGL render with transparent background.
 * Implement duplicator viewport/render visibility options.
 * T53610: Crash opening file with linked particles.
 * Collection: Name collection based on parent's name.
 * Collections: delete a collection move objects to master collection if users=0.


 * code.blender.org post
 * Blender 2.8 Xmas Report

Continue with the collection editing design implementation.
 * Next week

December 11-15
Got the proposed designed reviewed and updated after 2 meetings, and implemented and committed the main collection visibility changes. The only thing that is work in progress is the duplicator visibility control. The patch was sent for review, but I still need to integrate the emitter visibility in the same functionality. Also helped Antonio Vazquez with his Drawing 2D Animation in Blender 2.8 post.
 * Info


 * Blender 2.8 Commits
 * Fix workspace ui panel after workspace API change.
 * Outliner: Fix selection drawing.
 * Object selection: Fixing cases where old selection flag was used.
 * Fix RNA crash for objects without collection properties.
 * Fix dupli-frames (and other duplis).
 * Group collection viewport/render options and remove collection visibility.
 * Depsgraph / Render / Collection: Tag groups for rendering.
 * Depsgraph: Make DEG_OBJECT_ITER more granular.
 * Depsgraph: cleanup DEGOIterObjectData > DEGObjectIterData.


 * Pending patch
 * Implement duplicator viewport/render visibility options.

Address eventually feedback in the duplicator patch and tackle particles emitters. And write a code.blender.org post about Blender 2.8 status. If there is time left I will start implementing the collection editing tasks.
 * Next week

December 4-8
This week we had a long meeting on Tuesday to talk about how to address ongoing issues with Blender 2.8 communication and moving forward. One of the outcomes was to prioritize the design of the missing parts, so users know what is coming, and we can also more easily expand the team to help tackling these.
 * Info

I worked in design documents for collections visibility settings, and collection editing as well as some minor commits. I'm quite happy with the proposal for visibility settings, but the collection editing will be a bit more polemic I'm afraid so I still need to polish it.

Master Commits
 * Fix Collada building.

Blender 2.8 Commits
 * Code cleanup.
 * Fix group duplication bug.
 * Workspace: Clarifying library remap workaround.


 * Design Proposals
 * Collections visibility settings - Design Task
 * View layer and collection editing - Design Task



Finish design documents, gather more feedback for them, design other parts. I want to start a document in a state report for the Blender 2.8 project. But not before the designs are well received.
 * Next week

November 27-1
Finished the group collection patch and merged it in Blender 2.8.
 * Info



Also, I reviewed a patch about the outliner and reported yet another known issue for the outliner. It should be easy for new developers to tackle them. They are all listed further down for the records.


 * Blender 2.8 Commits
 * Fixing alembic unittest after render layer purge.
 * Fix T53291: Deleting objects do not delete them from the blend file.
 * Depsgraph: Fix Camera object showing when not in view layer.
 * Depsgraph: Tag all id_types on_visible_update.
 * Layer: Copy layer collection properties when doing a full copy of scene.
 * Fix lightprobe single user not working.
 * Fix memory leak when single_obdata_users fails to copy datablock.
 * Depsgraph: Add assert to make sure the view layer is part of the scene.
 * Silence warning from object_relations.c.
 * Groups and collection: initial integration.
 * Groups and collection: create group from collection.
 * Groups and collection: editing group collections.
 * Fix update of non-scene owned layer collections.
 * Fixup for workspace view_layer fix.
 * unittests: Update (fix) unittests after workspace API change.

For the records, all the current reported outliner tasks are:
 * Outliner reported issues
 * : Outliner: Problems removing multiple collections in sequence
 * : Outliner: Collections are collapsed when opening file
 * : Outliner: Drawing doesn't refresh after adding a new collection

I would like to step down a bit from coding to make sure the project is on track. But if I'm up to coding again I would like to work improving the collection pipeline, with shortcuts (e.g., M), the outliner collection collapse issue, check with the UI team what will be the final design for the new collection editor, ... anyways, layer and collection pipeline.
 * Next week

November 20-24
Finished and committed the SceneRenderLayer > SceneLayer patch, as well as SceneLayer > ViewLayer rename refactor. There is no more reference to scene layer in the entire code.
 * Info

I also did a few unittests to help make sure depsgraph changes are not breaking things. The dupli group tests couldn't me committed because it still fails because of a bug in the depsgraph dupli iterator.


 * Blender 2.8 Commits
 * Shows all Cycles panels based on scene, not context engine.
 * SceneRenderLayer > SceneLayer: Remove exclude_layer.
 * SceneRenderLayer > SceneLayer: Remove light_override.
 * SceneRenderLayer > SceneLayer: Convert material_override.
 * SceneRenderLayer > SceneLayer: Convert samples_override.
 * SceneRenderLayer > SceneLayer: Convert Z-Mask.
 * Bitflag tests simplification.
 * Doversion: We should always add the old RenderLayer.
 * SceneRenderLayer > SceneLayer: Convert Lay.
 * SceneRenderLayer Removal/Refactor.
 * Fix SceneRenderLayer memory leak for files created with 2.8.
 * Layers doversion: Don't set the Viewport created layer as renderable.
 * Fixup for last commit: flipped logic for disabling SceneLayer render.
 * Fix multi layer/multi pass render.
 * Fix doversion crash with 2.8 files that had freestyle 2.8.
 * Rename any instance of scene layer or render layer in code with view layer.
 * New view layers should be named "View Layer" (not Render Layer).
 * Fix specific 2.8 broken files.
 * Cleanup: Rename ViewLayer *sl > ViewLayer *view_layer.
 * Layers Unittest: Background set.
 * Object RNA: expose base_flag settings:.
 * Unittest: Update background set test to test for proper flag.

Finish the group collection patch and commit it.
 * Next week

November 13-17
Aside from sorted commits, I worked in the SceneRenderLayer > SceneLayer patch getting close to completion. I also worked with Sergey Sharybin on finishing and publishing the Depsgraph and dynamic override proposal.
 * Info


 * Relevant 2.8 Commits
 * Cycles: Fix after recent merge from master.
 * Fix quick smoke getting view_render from the wrong place.
 * Layers Unittest: Hidden flag to quckly update diffs.
 * Unittest: Layers - include is_disabled for LayerCollection.
 * Fixup for doversion/layers: disable collections for scene layers.
 * Layers doversion: Handle hide and hide_render objects.


 * Docs
 * Depsgraph and dynamic override.


 * Pending Patches
 * SceneRenderLayer > SceneLayer refactor.

Wrap up and commit the SceneRenderLayer patch, and handle more cleanup if needed by depsgraph or go back to groups user ref or collection groups.
 * Next week

November 6-10
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).
 * Info

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
 * Layers doversion: Handle hide and hide_render objects
 * Farewell BaseLegacy.
 * Rename Scene macros back to their original _NEW less names.
 * Farewell Scene->basact.
 * Object.layers no longer around, removing from ui.
 * Farewell Scene->base.
 * Partial Fix T53269: Dupli-verts/dupli-faces not working.
 * Refactor of BLI_iterator.
 * Depsgraph: Iterates over ID Nodes instead of Bases.


 * Master Commits
 * Fix: unselectable objects can be selected via the NLA editor.
 * Fix logic for pinning textures users from context.

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.
 * Next week

October 30-3
More work on finishing the Groups and collection Patch. Short week due to holidays.
 * Info


 * Relevant Commits
 * Prevent users to be able to override context engine.
 * Workspace cleanup: engine_id is in ViewRender.
 * Collections: Bring back simple visibility behaviour.
 * Introduce "skip" in BLI_Iterator struct.
 * Fix renderlayers UI removing the wrong renderlayer.

October 23-27
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.
 * Info


 * Relevant Commits
 * Showing Clay collection settings when clay is the workspace not the scene engine.
 * Fix freestyle UI after workspace > engine changes.
 * Fix T53156: VSE not working since Workspace > engine change.
 * Fix T52392: Node materials (Materials and World) not updated in viewport.
 * Fix non-instanced groups in no-collection file creating collections..
 * Refactor: Move rna_scene.c layer/collection to rna_layer.c.


 * Work in Progress Patches
 * Depsgraph: Iterates over ID Nodes instead of Bases
 * Groups and collection

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.
 * Next week

October 16-20
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].
 * Info


 * Relevant Commits
 * Fix/properly implement: "make group proxy".
 * Follow up to engine in workspaces, using clay as default.
 * Fix crash when Making Duplicates Real for groups.
 * Layers: Fix selected lamp and dupli count for info stats.
 * Fix for objects trailing in viewport when using BI in scene+Eevee in workspace.
 * Workspace: Move engines to workspace and Properties Editor cleanup.
 * Fix compatibility flag for nodetree.


 * Work in Progress Patches
 * Groups and collection

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).
 * Next week

October 9-13
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.
 * Info


 * Commits
 * Fix : Cycles material preview not working


 * Pending Patches
 * Bring engines to workspace and UI sanitize D2842
 * Layer evaluation --set-advanced-collection-evaluation D2878

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

October 2-6
First week working remotely. No proper weekly report. Things will be back from normal from now on.
 * Info


 * code.blender.org post
 * Blender 2.8 Design Document

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.
 * Next week

September 25-29
Last week working from the Blender Institute. No proper weekly report.
 * Info

September 18-22
Finished with Pablo and Ton the code.blender.org post about collections. Also Eevee was really broken ( 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.
 * Info


 * Commits
 * Fix : Audaspace: Leak when loading factory settings
 * Layer collection enable flag
 * Depsgraph and collection enable/visibility
 * Eevee: Fix wrong MEM_callocN allocation size
 * Fix : Eevee: viewport artifacts


 * Pending Patches
 * Build Info: Splash screen color change D2852
 * Collection enable/disable: use camera visibility as behaviour D2851


 * code.blender.org post
 * View Layers and Collections

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.
 * Next Week

September 11-15
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.
 * Info


 * Branch: `temp-workspace-changes`
 * Use engine from context/render in more places.
 * Fix engine context in Cycles.
 * Store engine_name in render struct and use it for render preview.
 * Workspace/Engine: Create BKE_render_* calls equivalent to BKE_scene_*.
 * Fix UI compatibility to use context.engine.
 * Use workspace engine for draw manager "render preview".


 * Patch reviewed, pending addressing suggestions
 * Bring engines to workspace and UI sanitize D2842.


 * Grease pencil
 * Meeting notes.


 * 6 months roadmap
 * Work in progress: google.docs

September 4-8
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.
 * Info


 * 2.8 Commits
 * Fix : Principle BSDF clearcoat.


 * Branch: `temp-workspace-changes`
 * Expose scene > engine in the UI (render panel).
 * Use workspace -> engine in the opengl render.
 * Use workspace -> engine in the viewport.
 * Collection Panel: Get mode from workspace.
 * Context: Expose "engine" for Python and add BKE_render_engine_get.
 * Properties Editor: Add Workspace and organize context path.
 * Workspace: Add (render) engines.
 * Workspace: SETLOOPER should get render layer from workspace.
 * Pass workspace for space listeners.
 * Workspace: "use_scene_settings" flag.

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




 * 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

Aug 28 - Sep 1
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.
 * Info


 * Commits
 * Increase max/min frame range to over a million.
 * Eevee: Fix conditional statement depending on unitialized value.
 * First take on fixing OpenColorIO issues on Mac.


 * Addendum to last week's design


 * Documentation
 * Scene Organization Workspace


 * Upcoming Diagrams

August 21-25
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.
 * Info


 * Commits
 * Revert "material Glsl: Fix tangent with new orco."
 * Fix : generated texture mismatch between Cycles and Eevee
 * Revert "Eevee: Fix generated coordinates when no texture coordinates connected"
 * Fix ORCO never used for draw manager (Eevee)
 * Eevee: Fix generated coordinates when no texture coordinates connected
 * Cycles Bake: Fix overflow when using hundreds of images
 * GL_TEXTURE_2D_ARRAY wasn't handled in GPU_texture_update
 * GPU Texture: Use switch instead of if/else


 * Usability design proposal
 * Google Docs (to be migrated to wiki)

August 14-18
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.
 * Info


 * Commit
 * Eevee: Convert metallic nodes into princinpled nodes
 * Swap Eevee material output with (Cycles) Material Output
 * Expose Transparency BSDF for Eevee UI
 * Uniform Buffer Objects: More complete padding solution
 * Fix ubo vec3 alignment issue
 * Fix zombie manipulators when deleting collection from outliner
 * Fix : Copy/Pasting a mesh immediately crashes blender
 * Update code comments from DAG_id_tag_update to DEG_id_tag_update
 * Depsgraph/Layers: Keep original visibility when doing full scene copy

July 10-14
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
 * Fix snap in 2.8 after poor merge from master
 * Revert "Fix T51794: Crash on hair file when opening with no UI"
 * Workspace: Fix crash on preview, and sanitize placeholder functions
 * Eevee: Fix crash on eevee lamps and shadows
 * RNA/UI: Always use capitalized words in the UI
 * Lamps should not have their own gpu material

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.
 * Next Week

July 3-7
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 : Eevee: ASAN crash on copy_attrib_name
 * Eevee: Hide lightprobe data when using "Only Render"
 * Fix building with gcc6 after merge from master
 * Fix alembic after merge from master
 * Fix edit mode not drawing
 * Eevee: Fix world test for volumetric
 * Expose rna_translate_ui_text to be used for interface templates
 * Override template: Add text and icon optional parameters
 * Eevee: Move volumetric to its own panel, new settings to come
 * Fix User Interface for Volumetric
 * Draw Manager: Use defines instead of hardcoded enum values
 * GPU: Silence warning of potentially unused variable (NormalMatrix)


 * Live Stream

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

June 26-30
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
 * Fix shaders not working in Eevee.
 * New scenes should use Eevee, not Blender Render.
 * Fix : Context tab for textures issue
 * Eevee: No need to free all the gpu materials when world changes.
 * No need to free all the shaders when appending or reloading libraries
 * Fix : OpenGL Detection is broken on Windows (patch cleanup and commit)
 * Fix : Deleting a scene uses freed memory.


 * Uncommitted
 * D2732: Alternative Fix : Deleting a scene uses freed memory.


 * Reported Bugs
 * : Eevee Depth of Field: Issues with opengl viewport render.
 * : Context tab for textures issue.
 * : Draw Manager: Set Origin is not updating mesh cache.
 * : Gawain assert with heavy mesh when selecting vertices on edit mode.
 * : Eevee: Probe and AO issues.
 * : Eevee: Mysterious square shows up in spot lamp.
 * : Eevee: Animated Eevee values slowdown.
 * : Eevee: Tangent normal map refresh issue.
 * : Draw Manager / Eevee: Sculpting mode doesn't have fancy shaders (UVs show black).
 * : Eevee / Draw Manager: Tangent not available in sculpt mode.
 * : Eevee: broken default coordinate.
 * : Depsgraph: world update happening eternally on background (set) scene

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.
 * Next Week

June 19-23
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  and D2722).

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


 * Commit
 * Fix : CompositorNodeSwitchView have the wrong rna API
 * Grease Pencil: Fix hardcoded DKEY for continous drawing
 * Fixup for gawain rename
 * Fix collada build after gawain rename/refactor
 * Draw Manager: Introduce functions/options to indicate the type of render
 * Indicate to users when manual conversion of Eevee materials is needed
 * Light Probes: interface changes, and renames
 * Eevee: Interface and units
 * Eevee: Fix max range of lightprobes


 * External Repository
 * https://github.com/dfelinto/opengl-sandbox

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

June 16
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
 * Draw Manager: Fix memory issues when copying scene
 * Fix : Separating objects by selected vertices in Eevee causes crash
 * Grease Pencil: Fix problems linking object with Pallete.
 * Fix : Eevee motion blur not working (with AMD).
 * Fix duplication of scene, it was missing duplication of layer properties
 * Expose World ID panel for Eevee
 * Fix object selection doversion issue since Workspace

More 2.8, finish up render_to_image.
 * Next Week

June 9
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
 * Fix crash when using sculpt dynamic smooth
 * Draw Manager: stop using stack memory!
 * Implement a new util function to get reference of mesh tex space
 * Eevee DoF: Use more reasonable UI range for anamorphic bokeh
 * Fix : Depth of Field Bug - Black Screen
 * Fix : Group selection broken
 * gcc5 has issues with Wconversion
 * Small cleanup: Use ELEM and wrong identation
 * CMake: Update clay engine message
 * Draw Manager: Prevent misuse of static draw context
 * Force crash on depsgraph iterator wrong access.
 * Draw manager: visibility of objects centers to mimic old 2.7x behaviour
 * Fix logic for bitwise flags in bases during deg iterator
 * Fixup for so Cycles does not show dupli
 * Silence annoying rna warnings from Eevee
 * Initial implementation for dupli objects


 * Design
 * Blender 2.8: Groups and Collections (to be finished and moved to wiki)


 * Investigations
 * Drawing issues when running in multiple windows
 * Background updating error in Eevee

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.
 * Next Week

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

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
 * Initial implementation for dupli objects
 * Silence warnings from Eevee
 * Layer collection doversion: Remove "converted from 2.7" from the name
 * Rename Eevee post process effects
 * Fix crash on rna show diffuse color update
 * Fix crash when setting sculpt settings
 * Implement support for Append objects in Blender 2.8
 * Depsgraph iterator refactor


 * Commits Master
 * Fix T49570: Cycles baking can't handle materials with no images
 * Baking: Add logic to get material from API regardless of Mesh/Object ownership


 * Publications
 * Viewport: Past, Present and Future
 * Eevee Roadmap May/Aug 2017 (moved to wiki)
 * Viewport Optimization (moved to wiki).

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.
 * Next Week

May 26
No report, spent the week with Clement on Eevee documentation, optimization and planning.
 * Info

May 19
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.
 * Info

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
 * Fix info header stats to iterator over layer instead of scene
 * Fix hair width changing
 * Clay/Hair: Only show hair when in object mode
 * Outliner: Bring back "activate" object when selecting from outliner
 * Clay hair: use builtin reflect function
 * Fixup on weightpaint shader after rB{{GitCommit|fabd55a5e9}
 * Freestyle working for Blender2.8
 * Fix crash when adding Torus in edit mode
 * Fix crash when changing Clay "Edge Strength"
 * Remove "Modern Viewport"
 * Remove viewport shading panel
 * Correct core profile way of getting color depth
 * Remove reference to WITH_GL_PROFILE_CORE
 * Remove reference to SUPPORT_LEGACY_MATRIX
 * Remove reference to WITH_LEGACY_OPENGL
 * Remove unused functions after WITH_LEGACY_OPENGL cleanup

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.
 * Next Week

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.

May 12

 * 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
 * Fix Depth of Field (i.e., implement gpuPushAttrib stack)
 * Fix multi-view single camera mode   (master),   (blender2.8)
 * Expand the collection settings RNA API for arrays
 * Allow building the game engine with core profile
 * Force core profile as main profile
 * Fix for edit modes (sculpt, weight paint) menus not showing in header
 * UI: Expose more UI settings to CLAY and EEVEE


 * Publications
 * Draw Manager Possibilities
 * Override Manifesto

May 5

 * 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
 * Fix relationship lines
 * Better fix for duplicate objects
 * Draw Manager: Bring pose bones to the pose engine
 * Draw Manager: Enable Pose engine as part of the weight paint mode
 * Draw Manager: Fix pose mode not working well
 * Draw Manager: Fix Cycles render stats on render preview
 * Draw Manager: Implement overridable scene render settings.


 * Next week

More draw manager.