Note: This is an archived version of the Blender Developer Wiki (archived 2024). The current developer documentation is available on developer.blender.org/docs.

User:MiguelPozo/WeeklyReports/2023

Week 1 (Jan 02 - 08)

Vacations!

Week 2 (Jan 09 - 15)

  • Going through the review process for Workbench Next (D16826), implemented the requested changes.
  • Fixed the compute-based culling (D17008) and the Debug Freeze (D17010) feature in the new draw manager.
  • Worked on overall optimizations in the new draw manager. (uncommitted)

Week 3 (Jan 16 - 22)

Week 4 (Jan 23 - 29)

Week 5 (Jan 30 - Feb 5)

  • Workbench Next: Group passes by material (D17163).
  • Fix T103903: Bump Node performance regression (D17198).
  • Investigated an issue with dangling pointers in GPU Nodes.
    Committed a temporal workaround to bypass the issue.

Week 6 (Feb 6 - 12)

Week 7 (Feb 13 - 19)

  • More work on shadowmap usage tagging for transparent object volumes (PR #104580).
  • Fix #104709.

Week 8 (Feb 20 - 26)

  • Low overhead handles for the new Draw Manager (used to avoid one full handle for each material slot in Workbench Next).
    Two different implementations with different pros/cons (PR #105034 & PR #105175).
    The final design will be similar to the first one, but avoids the need for an extra binding slot, which was the main con of that approach.
  • Fix #105042/#105175.
  • Initial work on Workbench Next volumes.

Week 9 (Feb 27 - Mar 05)

  • Final implementation for the low-overhead handles PR #105261. Now in addition to the object handle, each draw can specify an additional arbitrary custom ID. Workbench Next already used this system for indexing material parameters.
  • Fixed original coordinates in the new Draw Manager r2a9f792c9e.
  • Workbench Next volumes implementation (branch). Currently, they work exactly the same as in the current Workbench engine.

Week 10 (Mar 06 - 12)

  • The dev plan shifted to giving EEVEE Next full priority, so I dropped the planned improvements for Workbench Next Volumes and made a clean-up and pull request for a 1:1 implementation PR #105501.
  • Looked into bringing back and finalizing the EEVEE Next SSS implementation from the eevee-rewrite branch, but decided to leave it on standby until deferred shading is implemented (branch).
  • Started working on the EEVEE Next volumes implementation (branch).
  • I was involved in the design discussion for the LineArt improvements proposal (devtalk thread).
    Implemented a basic render engine skeleton for WangZiWei-Jiang to port his line extraction algorithm (branch).

Week 11 (Mar 13 - 19)

  • Fixed a regression that caused EEVEE to be able to support fewer image nodes than before PR #105770.
  • Updated the UDIM codegen to ensure each UDIM texture doesn't register more samplers than needed PR #105772.
  • Implemented a surfels debug display utility to prepare for the development of GI in EEVEE Next PR #105802.
  • Kept working on the EEVEE Next volumes port (branch).

Week 12 (Mar 20 - 26)

(4 days week, Monday was public holiday)

  • Review PR #105921.
  • Found and fixed an issue with draw_procedural not working with PassMain(commit).
  • More work on EEVEE Next volumes (branch).

Week 13 (Mar 27 - Apr 02)

  • EEVEE Next Irradiance Cache Display Grid (commit).
  • EEVEE Next Shadow usage tagging for Irradiance Cache Surfels (commit).
  • Improve GPUPass GC behavior PR #106386.
  • More work on EEVEE Next volumes (branch).

Week 14 (Apr 03 - 09)

Vacations!

Week 15 (Apr 10 - 16)

  • EEVEE Next volumes are almost ready (branch).
    • Fixed material code generation.
    • Fixed volume objects rendering.
    • Lighting integration.
    • Transparent surface integration.
    • Other improvements, fixes, and cleanups.

Week 16 (Apr 17 - 23)

  • EEVEE Next volumes pull request PR #107176
    • Ported all the shaders to the compute pipeline.
    • Optimized the volume object bounds. (Large performance improvement)
    • Clean-up to prepare for the pull request.
  • Initial implementation of the EEVEE Next Subsurface Scattering port. (branch)

Week 17 (Apr 24 - 30)

  • Addressed some feedback from the EEVEE Next volumes pull request PR #107176.
  • EEVEE Next Subsurface Scattering pull request PR #107407 (Feature complete, but SSS Transmittance energy is greater than Cycles with the same settings. Asked Clément for help on this one).

Week 18 (May 01 - 07)

(3 days work week due to public holidays)

  • Overlay/Selection Next (branch):
    • Refactor, replacing templates with construction time booleans PR #107734.
    • Started porting DRW_cache shapes and their overlay/selection implementation.

Week 19 (May 08 - 14)

  • Ported most shape cache functions from DRW_cache to Overlay Next.
  • Tracked a regression that broke Volume rendering in EEVEE and Cycles #107826, and fixed other similar (unreported) issues (commit).
  • Addressed the feedback for the EEVEE Next Volumes PR PR #107176.
  • Addressed the feedback for the EEVEE Next SSS PR PR #107407.
  • Found and fixed a crash in EEVEE Next when the Scene doesn't have a World PR #107891.

Week 20 (May 15 - 21)

(4 days work week due to public holidays)

  • Merged Workbench Next Volumes PR #105501.
  • Cleanups and fixes in EEVEE Next Volumes PR #107176.
  • Overlay Next (branch):
    • Cleanups and fixes for PR #107734.
    • Extras::InstanceBuffers refactor.
    • Bounds and Collisions.
    • Lights.
    • Force Fields.

Week 21 (May 22 - 28)

  • EEVEE Next: Image rendering and render passes fixes/improvements PR #108239.
    • Fix Image and AOV rendering.
    • Optimize image slot usage.
    • Fix Diffuse and Specular Light passes.
    • Add Environment and Shadow passes.
  • EEVEE Next: Ensure correct material settings are used PR #108283.
  • Initial work on EEVEE Next Ambient Occlusion (branch).

Week 22 (May 29 - Jun 04)

  • Added missing Render Passes for:
  • Other Ambient Occlusion improvements PR #108398.

Week 23 (Jun 05 - Jun 11)

  • Overlay Next (branch):
    • Refactor Extras code.
    • Cameras.
    • GroundLines, Points, and Line Rendering.
    • Object Centers.
    • Object Relationship lines.
  • Fix Shader Builder compilation on Windows PR #108820

Week 24 (Jun 12 - 18)

  • Created Overlay Next: Shapes and Extras PR #108984.
  • Merged EEVEE Next Subsurface Scattering after addressing the review feedback PR #107407.
  • Addressed review feedback for EEVEE Next Ambient Occlusion PR #108398.
  • EEVEE Next: Improved sampler indices PR #108984 (merged).
  • GPU: Print both resources on ShaderCreateInfo::validate_merge failure PR #109017 (merged).

Week 25 (Jun 19 - 25)

  • Overlay Next (branch):
    • Image Empties.
    • Camera Background.
  • Sculpt support for the new Draw Manager and Sculpt rendering in Workbench Next PR #109294.
  • Fix RenderDoc and Nvidia compatibility PR #109214.

Week 26 (Jun 26 - Jul 02)

  • Hair and Curves support for the new Draw Manager and Workbench Next implementation PR #109456.
  • Point Clouds support for the new Draw Manager and Workbench Next implementation PR #109568.
  • EEVEE Next: Ambient Occlusion Node and RenderPass merged after addressing feedback PR #108398.

Week 27 (Jul 03 - Jul 09)

Week 28 (Jul 10 - Jul 16)

Week 29 (Jul 17 - Jul 23)

  • EEVEE Next:
    • Motion Blur fixes PR #110114:
      • Fix motion blur when using temporal re-projection.
      • Fix per-vertex motion blur in final renders
    • Overscan support for viewport and final renders PR #110313.
    • Irradiance cache integration for Volume lighting 1202279fd4.

Week 30 (Jul 24 - Jul 30)

  • EEVEE Next:
    • Add missing Volumes features (branch)
      • Self-shadows.
      • Shadow-map tagging and shading integration.
      • Improve sampling.
      • Use blue noise for the froxel jitter. (Experimental, fixes flickering on viewport navigation, but decreases final render quality)
    • Initial Sculpt support implementation (Shadows are broken) (branch).
    • Test and review Irradiance Bake Virtual Offsets PR #110355 and Dilation PR #110386

Week 31 (Jul 31 - Aug 06)

  • EEVEE Next:

Week 32 (Aug 07 - Aug 13)

Vacations!

Week 33 (Aug 14 - Aug 20)

Vacations!

Week 34 (Aug 21 - Aug 27)

  • Workbench Next:
    • Workbench Next is now enabled by default PR #111403.
    • Workaround lack of texture views to support the Windows ARM software driver PR #111402.
  • EEVEE Next:
    • Add shadow bias based on depth reconstruction precision PR #111478.
    • Move the transmittance LUT to the Utility Texture to save a sampler slot in forward materials PR #111535.
    • Fix Subsurface Scattering regression PR #111534.
    • Fix Object Info -> Random 89dc2e1649.
    • Fix World Volume material compilation error f57a8f07c0.
  • GPU:
    • Ensure Textures are not added twice to the same FrameBuffer PR #111531 (Fixes #111466).

Week 35 (Aug 28 - Sep 03)

  • Workbench Next:
  • EEVEE Next:
    • Fix Render Region and improve Film naming/documentation PR #111691.
  • GPU:
    • Fix Next engines support for Intel 4400/4600 #111587.
    • Allow using the drw_debug API in any shader file and remove it from Release builds PR #111710.

Week 36 (Sep 04 - Sep 10)

  • GPU:
    • Fix #111699: Remove deleted interfaces from the VAO cache.
  • Workbench:
    • Remove the code from the old implementation and rename Workbench Next to just Workbench PR #111993.
  • EEVEE Next:
    • Fix lighting in scenes without shadow casters, as part of PR #110809.
    • Merge all the small UBOs used by the engine to save binding slots PR #112046.
    • Add basic support for running tests PR #112161.
    • Add back data passes UI and missing passes (Position and Motion Vectors) PR #112162.
    • Fix motion blur on image renders 1faa522880

Week 37 (Sep 11 - Sep 17)

  • Workbench:
    • Fix #112242: Allow xray in render mode.
    • Fix #112211: Clamp infinite inputs in TAA.
    • Fix #112231: Texture support in sculpt mode.
    • Fix #112289: Always clear depth_in_front.
    • Fix #112409: Cavity disabled when Xray is enabled.
    • Sculpt fixes PR #112344:
      • Fix #112284 and other non-reported sculpt-related regressions in the new Workbench.
      • Cleanup ObjectState setup.
      • Update sculpt_batches_get to support getting per material batches while passing SculptBatchFeatures.
      • Make material indices 0 based.
  • EEVEE:
    • Fix #111960: Shader compilation errors due to incorrect BuiltinBits::LAYER use PR #112245.
  • EEVEE Next:
    • Fix Velocity do_deform detection efb7455.
    • Add data passes UI and missing passes (Position and Motion Vector) PR #112162.
    • Fix SSS image rendering 27a36cc.
    • Fix Hair and Curves motion vectors (WIP) PR #112425.

Week 38 (Sep 17 - Sep 24)

Week 39 (Sep 25 - Oct 01)

  • Draw:
    • Fix Circle select tool low performance #112164.
  • Workbench:
    • Fix hair image rendering #112867.
    • Fix performance regressions (WIP) (branch).
  • EEVEE Next:
    • Irradiance Grid clip distance and probe alignment PR #112863.
    • Ensure volume property textures are cleared PR #112871.

Week 40 (Oct 02 - Oct 08)

Week 41 (Oct 09 - Oct 15)

Week 42 (Oct 16 - Oct 22)

Week 43 (Oct 23 - Oct 29)

  • Workbench:
  • EEVEE Next:
    • Improve version updating for the new shadow options PR #113980.
    • Track Material recalc updates WIP.
    • Proposal for fixing DrawData recalc #114112.
    • Add Material > Inflate Bounds option so frustum culling can work correctly with vertex displacement PR #114200.
    • Sphere Probes viewport display and per-probe settings (Sphere and Volumes) #114176.
  • Review PR #114150 and PR #114061.

Week 44 (Oct 30 - Nov 05)

  • Workbench:
  • EEVEE Next:
    • New Shadow settings PR #113980:
      • Unify with Cycles settings.
    • Inflate Bounds PR #114200:
      • Inflate bounds after material sync.
      • Add Manager::update_handle_bounds.
      • Add GPU_material_has_displacement_output.
    • Probes viewport display #114176:
      • Add Plane Probes display.
    • Investigate failing Shadow tests (TestAlloc and TestDefrag).
  • Review PR #114259.

Week 45 (Nov 06 - Nov 12)

Week 46 (Nov 13 - Nov 19)

Week 47 (Nov 20 - Nov 26)

  • Core:
    • Add ObjectRuntime::last_update transform, geometry and shading PR #115196.
  • EEVEE Next:
  • Draw/GPU:
    • Fix #115144: isect_data_setup compiler error PR #115175.
    • Assert no UINT push constants are used f97580f665.
    • Add Manager::update_handle_frustum_culling_test PR #115375.
    • Investigate #115226: Nvidia shader compiler error : too many instructions.

Week 48 (Nov 27 - Dec 03)

  • EEVEE-Next:
    • Use Object::visibility_flag in MaterialKey PR #115575 (fixes #115488).
    • Fix alpha hashed transparency not converging PR #115620.
    • Scene sync improvements, fixes and simplification (WIP):
      • Rely on the depsgraph to detect scene updates.
      • Remove most sampling.reset() calls and their related logic.
      • Get rid of GPU_material_recalc_flag_get (broken) and replace it with depsgraph update tags.
      • Fix Lightprobe bake update tags.
  • Core:
    • Avoid duplicated Depsgraph operation nodes on geometry data PR #115615

Week 49 (Dec 04 - Dec 10)

Week 50 (Dec 11 - Dec 17)

Week 51 (Dec 18 - Dec 24)

Week 52 (Dec 25 - Dec 31)

Vacations!