This is a rough proposed outline of tasks to work on for the code quest (based on discussion between @campbellbarton & @sergey).
*## Interface
**
* COW display evaluated data, edit original.
*
## Depsgraph
**
* Building depsgraph from an arbitrary ID block.
*** This can be used for efficient calculation of motion paths.
*** Viewport motionblur
*** Sequencer prefetch rendering frames (in threads).
** Best get input from Sergey.
** Performance (investigate)** This can be used for efficient calculation of motion paths.
** COW** Viewport motionblur
* Modifiers** Sequencer prefetch rendering frames (in threads).
** Remove derived-mesh* Best get input from Sergey.
* Layers* Performance (investigate)
* COW
## Modifiers
* Remove derived-mesh
## Layers
* UI (design)
** Check Performance
For larger scenes current layer system likely has poor performance
given the way linked lists are used.
It would be good to measure what the difference w/ 2.7x is,
if this is something to address, set as TODO or if we can leave as-is.
** Moving between layers
** Best get input from Dalai
More work is needed to finish this off, not sure how much.
** How do set-scenes work w/ layer visibility?
*## Asset Manager?
Make it part of code-quest???
** Needs discussion w/ Bastien (just focus on this until it's done?).
Suggest to finalize design w/ UI guys, can fix technical issues later.
## Drawing Code Basics
* Workbench Engine
* Drawing Code Basics
** Workbench Engine
** Add back some missing options? - xray, wireframe.
** OpenGL selection has remaining bugs
Maybe small, need investigaion.
*** Sculpting Bugs
** Performance (investigate)
** Clipped output (alt-b)s
* Drawing API's* Performance (investigate)
** Resolved fixed buffer size for immediate mode.
** GPU - cleanup naming, remove deprecaed API's.
** Move to GPU (use BLI_threads) Use blender's code styl Clipped output (alt-b)
## Drawing API's
* Resolved fixed buffer size for immediate mode.
** Wayland (ok after code-quest!)* GPU - cleanup naming, remove deprecaed API's.
* Overrides* Move to GPU (use BLI_threads) Use blender's code style.
* Wayland (ok after code-quest!)
## Overrides
* UI Design
** See: Bastien, Dalai for UI, more development, testing.
Depends on COW.
** Access from Python (for later).
*
## Workspace
**
* Topbar design (keep redo panel where it is)
** Fix crashes in scene linking.
** Finalize object mode design & stabilize.
** Finalize bare minimum for release, possible extras.
* Operators
** Port to COW
** Undo system restructure and make linear (optional)
** Multi-object edit-mode (optional)* Fix crashes in scene linking.
* Tools* Finalize object mode design & stabilize.
** 101 Project* Finalize bare minimum for release, design is needed.possible extras.
## Operators
* Port to COW
* Manipulators* Undo system restructure and make linear (optional)
** UI D* Multi-object edit-mode (optional)
## Tools
* 101 Project, designn is needed.
## Manipulators
* UI Design
Reevaluate existing design. check if any changes are needed.
** More work to do, polish, usability, continued development.
** Confirm current API design is OK to go ahead with.
We could re-evaluate a handful of minor things.
** Use to replace notifiers over the rest of Blender.
* Python API
** COW support
## Python API
* COW support
At least exporters should export evaluated data>
** Various minor changes T47811 (best handle after the code-quest).
** Update all add-ons (again, after code-quest)
*
## Versioning
**
* Tests loading complex production files.
Ensure basics are supported & no crashes.
** Check if we can make 2.8 files load in 2.7x
On basic level, all layers visible.
* Refactor
** Split some files to help w/ merge conflicts
## Refactor
* Split some files to help w/ merge conflicts
Check files over ~3000 LOC, also use common sense!
*** CMake: remove BLENDER_SORTED_LIBS P522
*
## Sequencer
**
* Scene strips w/ COW, layers.. drawing engines?
** Make breaking changes
*** Transform especially has very strange behavior
*** Remove grading in linear space option.
** FUN: Camera navigation in sequencer (optional).
(pixel based options making output at different sizes confusing)
while we dont have time for a large project, we could improve things we know are bad-by-design.
** Prefetch frames (optional, nice to have, fits nice w/ COW)
* Physics & Particles
** Bring back 2.7x level of support
## Physics & Particles
* Bring back 2.7x level of support
Make the modules a blackbox, keep existing files working-ish.
## Remove deprecaed features
* Blender Internal!
* Remove deprecaed features
** Blender Internal!
** Texture Nodes (redo or remove - currently)
** Armature Sketch
** BGE Player
** Mesh Legacy Format (pre BMesh).
** Remove tessface
*** Cycles: use looptri (detect quads if needed).
*** Remove from RNA: Python IO needs updating
*** Particles: We need operator to re-distribute to tris (can't do in readfile).
*** BVH utils uses still.
** Remove non-triple buffer drawing.
** Screen Capture
** Frame Server
** AVI-RAW/JPEG
** Remove Current BGE Implementation in 2.8
Replace with interaction mode at later date.
### After Code-Quest Topics
*## Nodes
**
* Move cycles away from hard-coded C definitions.