This is a rough proposed outline of tasks to work on for the code quest (based on discussion between @campbellbarton & @sergey).
* Blender 2.8
** Interface
*** COW display evaluated data, edit original.e
** Depsgraph** COW display evaluated data, edit original.
*** Building d* Depsgraph from an arbitrary ID block.
**** This can be used for efficient calculation of motion paths** Building depsgraph from an arbitrary ID block.
**** Viewport*** This can be used for efficient calculation of motionblur paths.
**** Sequencer prefetch rendering frames (in threads).*** Viewport motionblur
*** Best get input from SergeySequencer prefetch rendering frames (in threads).
*** Performance (investigate)** Best get input from Sergey.
*** COW** Performance (investigate)
** Modifiers** COW
*** Remove derived-mesh* Modifiers
** Layers** Remove derived-mesh
*** UI (design)* Layers
*** Check Performance** 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 Dalais
** 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
*** Add back some missing options? - xray, wireframe.** Workbench Engine
*** OpenGL selec** Add back some missing option has remaining bugss? - xray, wireframe.
** OpenGL selection has remaining bugs
Maybe small, need investigaion.
***** Sculpting Bugs
*** Performance (investigate)s
*** Clipped output (alt-b** Performance (investigate)
** Drawing API's** Clipped output (alt-b)
*** Resolved fixed buffer size for immediate mode.* Drawing API's
*** GPU - cleanup naming, remove deprecaed API's** Resolved fixed buffer size for immediate mode.
*** Move to** GPU (use BLI_threads) Use blender's code style- cleanup naming, remove deprecaed API's.
*** Wayland (ok after code-quest!)** Move to GPU (use BLI_threads) Use blender's code style.
** Overrides** Wayland (ok after code-quest!)
*** UI Design* Overrides
*** See: Bastien, Dalai for UI, more development, testing.** 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)* Workspace
*** Fix crashes in scene linking.** Topbar design (keep redo panel where it is)
*** Finalize object mode design & stabilize** Fix crashes in scene linking.
***** Finalize bare minimum for release, possible extrasobject mode design & stabilize.
** Operators** Finalize bare minimum for release, possible extras.
*** Port to COW* Operators
*** Undo system restructure and make linear (optional)** Port to COW
*** Multi-object edit-mode** Undo system restructure and make linear (optional)
** Tools** Multi-object edit-mode (optional)
*** 101 Project, design is needed.* Tools
** Manipulators** 101 Project, design is needed.
*** UI Design* 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.
** 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
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 conflictstor
** 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?* Sequencer
*** Make break** Scene strips w/ COW, layers.. drawing changesengines?
**** Transform especially has very strange behavior** Make breaking changes
**** Remove grading in linear space option.*** Transform especially has very strange behavior
*** FUN: Camera navigation in sequencer (Remove grading in linear space optional).
** 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!
*** Texture Nodes (redo or remove - currently)
*** Armature Sketch
*** BGE Player
*** Mesh Legacy Format (pre BMesh).
***** Remove tessface
**** Cycles: use looptri (detect quads if needed).ce
**** Remove from RNA: Python IO needs updating*** Cycles: use looptri (detect quads if needed).
**** Particles: We need operator to re-distribute to tris (can't do in readfile).*** Remove from RNA: Python IO needs updating
**** BVH utils uses still*** Particles: We need operator to re-distribute to tris (can't do in readfile).
*** Remove non-triple buffer drawingBVH utils uses still.
*** Screen Capture** Remove non-triple buffer drawing.
*** Frame Server** Screen Capture
*** AVI-RAW/JPEG** Frame Server
*** Remove Current BGE Implementation in 2.8** AVI-RAW/JPEG
** Remove Current BGE Implementation in 2.8
Replace with interaction mode at later date.
### After Code-Quest Topics
* Nodes
* After Code-Quest Topics
** Nodes
*** Move cycles away from hard-coded C definitions.