Week 154 : 30th - 22nd December

  • Info


Week 153 : 16th - 22nd December

Grease Pencil object lit by scene lamps
  • Info

This week I focused on the GPencil FX refactoring.

During this, we decided that the light FX would be better suited to be a shading options and use the lights in the scene. So I implemented a simple lighting system. However, shadowing will not be supported due to the 2D nature of Gpencil. This feature will be a layer option.

This also means that all rendering should be color managed correctly to ensure lighting is correct. A first step has been done to address this issue.

  • General development
    • GPencil: Refactor: Stroke Caps: Fix a few issues 8beb7c838fc.
    • GPencil: Refactor: Implement rounded caps e42f30d45e3.
    • GPencil: Refactor: Make light power match cycles and EEVEE 6af1309e050.
    • GPencil: Refactor: Use more correct depth merge approximation for 2D object 42580ddf920.
    • GPencil: Refactor: Use normal approximation for lighting 685c94eacb3.
    • GPencil: Refactor: Blur Fx: Implement DoF option and fix radius world size 8f9c04762e3.
    • GPencil: Refactor: First step to get rid of sRGB ec5b795d11b.
    • GPencil: Refactor: Add world ambient lighting c0981f4a15d.
    • GPencil: Refactor: Implement "Use Lights" toggle 3d2d9c7c5ab.
    • GPencil: Refactor: Add other light types 907e99d08df.
    • GPencil: Refactor: Add new basic light system 2d3e86f2b0f.
    • GPencil: Refactor: Add Swirl FX 0cc5a2bfd19.
    • GPencil: Refactor: Add Wave FX 0509f4149ea.
    • GPencil: Refactor: Add Flip FX 27fa133435f.
    • GPencil: Refactor: Add Rim FX d56f1a5f446.
    • GPencil: Refactor: Add Colorize FX 7359bec21b2.
    • GPencil: Refactor: Add Shadow Effect 4f08463279a.
    • GPencil: Refactor: Add Glow effect 2e5d299823b.
    • GPencil: Refactor: Add Pixelize effect f2bc524e644.
    • GPencil: Refactor: FX: make the Blur not dependant on sampling parameter 3520b3379c2.
    • GPencil: Refactor: Add invert masking 38f537c5888.
    • GPencil: Refactor: Base implementation of VFX for gpencil 2d751d44ee8.
  • Next week

Continue Grease Pencil refactor.

Week 152 : 9th - 15th December

Blending between GPencil objects
  • Info

Refactor of the grease pencil is going nicely.

I streamlined the Stroke color calculation and removed the corner cases. Now the final stroke color is decided (by order of importance): Layer Tint > Vertex Color > Material Color.

I fixed the layer's blend modes to correctly blend between objects and layers. Unfortunatelly a limitation prevent us from compositing some blend modes correctly with the background. Fixing that is still up to debate as it as performance implication. The new mask system will also allow half transparent masks. I had to implemented 3 different masking system to test the pros and cons of each. The one I decided to use is the simplest (in code complexity), the more flexible (in terms of feature) but not the lightest on the performance.

With the help of the grease pencil team, we redesigned the gpencil layer masking system to be easier to work with. The system is WIP but we choose to follow the convention where masks affect layers that are bellow them. This is the way most painting software works with masks.

We decided to drop the checker fill texture type as it is easy to replicate with textures.

  • General development
    • GPencil: Refactor: Implement Opacity Masking a0b953374a9.
    • GPencil: Refactor: Add Top to bottom layer masking using stencil 6bcd877ebb9.
    • GPencil: Refactor: Change Mask Behavior eb3fe4c8486.
    • GPencil: Refactor: Speedup: Only blend pixels rendered in the layer 8ea92115f3d.
    • GPencil: Refactor: Implement Layer Masking a3c998e4f30.
    • GPencil: Refactor: Add depth merge pass 2cef0182fb7.
    • GPencil: Refactor: Add depth test in the fragment shader b9bcc12eb9d.
    • GPencil: Refactor: Add support for layer blending 170680b5448.
    • GPencil: Refactor: Add offscreen compositing foundation 4ba94091be0.
    • GPencil: Refactor: Implement Object sorting 81436b95bdf.
    • GPencil: Refactor: Implement Stroke self overlap option 3adcfeac960.
    • GPencil: Refactor: Implement layer tint 5cf56f6ae8b.
    • GPencil: Refactor: Add Dots & Square drawing type 9ad8f9e3bac.
    • GPencil: Refactor: Improve stroke color mixing support 2494b982dd7.
    • GPencil: Refactor: Add UV / Texture support to strokes f883a9c9bbf.
    • GPencil: Refactor: Add basic vertex color support 985a9dba61d.
    • GPencil: Refactor: Implement Checker Fill type (later removed) 6200ea886c9.
    • GPencil: Refactor: Add support for fill textures 076eb5c87a7.
    • GPencil: Refactor: Put fill uvs into bGPDspoint 018d7784511.
    • GPencil: Refactor: Add basic Material color support via UBO 7734b00563b.
    • DRW: Add DRW_shgroup_stencil_set to set all stencil test values 3d78e028373.
    • DRW: Add subtract blend logic 18c4fcb9a34.
    • GPU: Framebuffer: Add GPU_framebuffer_multi_clear db21312bfb3.
    • BLI_memblock: Fix BLI_memblock_destroy not freeing all elements 980d1d55271.
  • Next week

Continue Grease Pencil refactor.

Week 151 : 2nd - 8th December

  • Info

I fixed the major issues of the new Antialiasing system for overlays and fixed some bugs related to the overlay refactor.

I decided to port the outline smoothing pass to the new antialiasing system but it was more complex than I expected. Doing so reduces the overhead of the outline drawing and memory requirements. The AA of the outline is not where I would like it to be but I have to tackle the GPencil refactor first.

I already started doing the grease pencil refactor and already fixed a major shortcoming of the previous implementation (world space stroke groving near the near clip plane). However this fix means that every old files are potentially a bit off depending on the stroke distance to the camera. We are investigating a workaround to patch old files to mitigate the issue. But this also means we break forward compatibility.

The Grease Pencil refactor is happening in the greasepencil-refactor branch. We use the debug value of 50 to test the new implementation. This makes it easy to test against the old implementation.

  • General development
    • Overlays: Add back selectability of planar lightprobe data plane 4949a62d4d7.
    • Overlays: Armature: Fix Crash entering armature edit mode dcded195077.
    • Overlays: Armature: Use Wire AA on custom bone loose edges b9f896f6f1b.
    • Overlays: Cleanup & enable line AA on in front passes 1b33e1f9ae7.
    • Overlays: Fix bone outline antialiasing d40579c62b4.
    • Overlays: Fix crash in select mode with Lock Object Modes off d21a8dcae29.
    • Overlays: Fix dashed curves and loose edges 6d2bc870a7c.
    • Overlays: Fix T72147 Blender crashes when Lock Object Modes off fda791ab124.
    • Overlays: Fix unreported crash on startup caused by new shader fe605080ef8.
    • Overlays: Fix vertex discard issue on Nvidia hardware 1e480840a21.
    • Overlays: LightProbe: Simplify drawing of irradiance grid data 4705aa4fe51.
    • Overlays: Outlines: Simplify drawing code a77fe7eb5c3.
    • Overlays: Outlines: Bypass antialias path when not needed 5356c90a46e.
    • Overlays: Outlines: Fix occluded alpha being too low 798b977d95b.
    • Overlays: Simplify outline rendering by using the antialiasing pass 6d3eb85f66a.
    • Overlays: Wireframe: Fix Edges not being culled correctly 37cd7b25dc8.
    • Overlays: Wireframe: Fix missing loose edges in object mode 6fd2e65295e.
    • Overlays: Wireframe: Improve Z-fighting / missing information stippling a81fdefddeb.
    • Workbench: Fix missing Clipping state when usint Alt+B clipping f7bd56bf22b.
    • GPencil: Refactor: Add back basic fill drawing 8e3c8912290.
    • GPencil: Refactor: Add new logic to create batches and store draw passes 12034dc4aaf.
    • GPencil: Refactor: Add quick 3D/2D stroke ordering for testing 3701305e877.
    • GPencil: Refactor: Add thickness support 32b8eab5cfa.
    • GPencil: Refactor: Draw gpencil strokes using instanced quad a5e6e56a6d3.
    • GPencil: Refactor: Fix fill stroke indices afecc4e976f.
    • GPencil: Refactor: Fix miter of endpoints 935198aa8ae.
    • GPencil: Refactor: Fix stroke end segment not drawn because of 180° angle 1f185740c46.
    • GPencil: Refactor: Implement Miter corner logic e87804f2ba5.
    • GPencil: Refactor: Quick implementation of object matrices 090127099de.
    • GPencil: Refactor: Rename variables to match naming convention 4760d44e823.
    • GPencil: Refactor: Use iterator to populate draw passes 10c1823899c.
    • GPencil: Use debug_value of 50 for testing new refactor e6fc0a39de0.
    • Draw Manager: Add new DRW_shgroup_call_instance_range 82c135816f7.
    • GPUVertFormat: Add GPU_vertformat_multiload_enable f7fc37e46ce.
  • Next week

Continue Grease Pencil refactor.

Week 150 : 25th - 1st December

New Overlay Antialiasing
  • Info

This week I was in Amsterdam working from the Blender Foundation office. We had some discussion about the future of EEVEE and the viewport and work distribution with Jeroen. I used the availability of different hardwares to fix a crutial bug.

I focused on finishing the Overlay Refactor which led to some more tinkering about how we do AA.

I tried to use FXAA and SMAA but they were poorly fitted to our overlays which are mainly intersecting wireframes. So I developped our own AA solution which seems to be working pretty well. There is still some minor issue on wireframe overlays with geometry that is nearly parallel to the view, but I have plans to mitigate it. This method is also pretty cheap for the quality it provides.

This method can also be used to fix the limitation of OSX that prevented us to draw thick lines T57570.

  • General development
    • Overlay Engine: Change Antialiasing implementation to a novel method! 7164e63fefc.
    • Overlay Engine: Fix Sculpt Mask overlay 915e54ee9db.
    • Overlay Engine: Add SMAA to replace FXAA 4926e7413d5.
    • Overlay Engine: Fix loose wire showing after edit mode and not showing in.. 2c5cd812f76.
    • Overlay Engine: Fix issue with facing overlay 2367fd9e1fa.
    • Overlay Engine: Fix/Improve Temporal AntiAliasing 4e298108a38.
    • Overlay Engine: Fix crash when enabling pose bone selection overlay 120a7e1b443.
    • Overlay Engine: Wireframe: Fix wireframe overlay on top of infront objects 626e291d1c8.
    • Overlay Engine: Fix armature shape always transparent d33477d1a40.
    • Overlay Engine: Fix Paint overlays disapearing because of TAA 5daca04d4ef.
    • Overlay Engine: Fix Armature bone toggle da13ddb65ad.
    • Overlay Engine: Make overlay parameters reset TAA c980f9e652a.
    • Overlay Engine: Update overlays on ID update 443effa45f5.
    • Edit Armature: Tag armature after any operator to invalidate viewport 4baf7385403.
    • Fix Wireframe issue with infront objects dfad332740c.
    • Fix infront selectability of solid objects ded3fc0725d.
    • Fix In Front object selectability 7330b347d77.
    • Fix FXAA alpha issue. d4420d7070b.
  • Next week

Fix the remaining bugs on overlays and start looking at GPencil Refactor.

Week 149 : 18th - 24th November

  • Info

Finished the refactor and even went a bit further and removed a lot of hack and unused code/shaders. Also tried to remove a few geometry shader which are dealbreaker for using Vulkan with MoltenVK on OSX.

  • General development
    • BLF: Remove use of geometry shader 0a9ff3d25ae.
    • Cleanup: DRW: Remove Hack of skinroot rendering 06bbcb8ffa1.
    • Cleanup: DRW: Remove old unused code ae3687ac480.
    • Cleanup: DRW: Remove unused GPUBatches from Shape cache fa009ca0bd2.
    • Cleanup: GPU: Remove unused shaders b695343c6cb.
    • Cleanup: Make empty image use quad batch instead of specific batch a527a3e1597.
    • Cleanup: Port back the custom shape ghash to revert perf regression 872cbbf84ff.
    • Cleanup: Remove more unused files ed12703bd16.
    • Cleanup: Remove older draw engine from draw module 00ba7b314e4.
    • Cleanup: Remove stipple start position duplication 75c39c8d23d.
    • DRW: Fix an issue with instanced rendering and base_instance e0a0f1cbe00.
    • GPU: Batch: Add second instance buffer 52e69ce7471.
    • GPU: Remove The use of geom shader for dashed lines 4bf0c9793af.
    • Overlay Engine: Add FXAA as base Antialiasing 98360afb33c.
    • Overlay Engine: Add Temporal Anti Aliasing c7a13de09a1.
    • Overlay Engine: Armature: Bone selection overlay 3cd95fc46fc.
    • Overlay Engine: Edit Mesh: Port Occlusion detection to shader b5d3d4e41f6.
    • Overlay Engine: Edit Mode: Change Normal overlays f21f35b68dc.
    • Overlay Engine: Fix background image and sort empty images by Z depth d78bd78c141.
    • Overlay Engine: Fix overlay toggle not working bd09bd2ffa6.
    • Overlay Engine: Fix selection outline antialiasing 2723032ca74.
    • Overlay Engine: Improve In Front pass ordering 7c17e76e0e5.
    • Overlay Engine: Loose Edges/Verts a9c8eab4b64.
    • Overlay Engine: Only alloc extra depth texture if really needed 03cc35013c2.
    • Overlay Engine: Particles 0417033bf3f.
    • Overlay Engine: Sculpt Mask 5ea8bed6f2b.
    • Overlay Engine: Wireframe: Put color evaluation in the shader cfcbb1daeef.
    • Overlay Mode: Fix infront depth sorting 1552dd3f16b.
  • Next week

I'll be going to Amsterdam to have some important meetings, plan for the next releases and fix some bugs on some hardware I don't have at home. I'll also fix the issues of the Overlay Unification Branch in order to merge it as soon as possible.

Week 148 : 11th - 17th November

  • Info

The unification is almost done. It will be submitted to review in the following days.

All the developement of the unification happens in the tmp-overlay-engine branch.

  • Next week

Leverage the unification to remove some old standing drawing issue.

Week 147 : 4th - 10th November

  • Info

I worked on unifying the Overlay engines into one meta engine as described here T65347. I went a bit more than just unifying and do a general review of the code and rewrite it to be easier to understand and to reduce complexity. This proved to be nice as I already fixed some minor drawing bugs and even got some perf improvement in synthetic cases (which was not the goal of the refactor).

  • General development

All the developement of the unification happens in the tmp-overlay-engine branch.

  • Next week

Finish the overlay unification.

Week 146 : 28th - 3rd November

  • Info

Finished recovering from illness. Started Overlay's unification (See T65347) and did some long standing bug fixes.

  • General development
    • Fix T69468 EEVEE: Collections Holdout Button in Outliner Is Ignored 8e6882a70dc.
    • Fix T70091 EEVEE: volumetric broken, not refresh d0d57f17121.
    • Fix T71050 EEVEE: Light Path Node broken in 2.81 883e22a92ca.
    • Fix T71062 EEVEE: Holdout shader is broken in 2.81 d758a79557c.
  • Next week

Continue Overlay's unification.

Week 145 : 21th - 27th October

  • Info

I caught a illness right before going to the Blender Conference and had to take the week to recover. I am trully sorry for the people that were hopping to meet me there.

Week 144 : 14th - 20th October

  • Info

Fixing bugs and regressions.

  • General development
    • Fix T70678 Workbench: Smoke Sim display has incorrect offset 382e7ce9ecf.
    • Fix T70811 EEVEE: Alpha clip/hashed cause wrong alpha values 4142f3993cd.
    • Fix assert and memleak in recent Skin Root Display patch 7e78fbf2ded.
    • Fix T70249 EEVEE: Light bleeding on SSS translucency 131ac2ec82b.
    • Fix T68380 Skin modifier root not displayed 4ddf3215a7d.
    • Fix T70543 Rigid Body Collision Shape Not Displayed In Viewport 89566668993.
  • Next week

Fixing bugs.

Week 143 : 7th - 13th October

  • Info

Fixing bugs and regressions.

  • General development
    • Cleanup: Fix wrong assert introduced by rBd98ae27f02c7 b50b91c25db.
    • Fix T67753 EEVEE: Crash using transparent shadows with default material a856c5eccff.
    • Fix T69363 EEVEE: Blender crash when using Edit mode for Ocean 656228945eb.
    • Fix T70586 EEVEE: principled shader alpha bleeding issues 576c782b11f.
    • Fix T70609 EEVEE: Shader using lots of nodegroups are slow to update 8163fda9fb8.
    • Fix T70614 EEVEE: Bump with texture connected to other branches don't work f61a8a2abd0.
    • Fix T70640 EEVEE: A7lpha hashed material is darker when alpha is not 1.0 4aabea8b87a.
    • Fix T70644 EEVEE: Bump issue with geometry node normal coordinate 8ada6855811.
    • Fix T68857 EditUV: Crash on Remesh modifier with 'Display in Edit Mode' d98ae27f02c.
    • Fix T70302 Crash on entering solid view after some specific steps e5858cc5bee.
    • Fix T70659 Warning, Regression, slow vertex selection 9bd62379d61.
  • Next week

Fixing bugs.

Week 142 : 30th - 06th October

  • Info

Fixing bugs and regressions.

  • General development
    • Fix T70463 GPU: Very Slow Workbench/Eevee Performance 663d23dd9dc.
    • Fix T70466 Rendering error when drawing multi-material meshes 11768d1c9f4.
    • Fix T70331 Node group passthrough is broken 3734ae5d548.
    • Workaround for NVidia broken driver f8f28dc7841.
    • Fix T70206 Texture Paint: UV shadow doesnt show up 574265f52fa.
    • Fix T70414 EEVEE: Crash with 2 viewports, UV edit and sync selection 02ad256f9aa.
    • Fix T70325 EEVEE: Performance regression with large nodetrees 5c79f2d0fba.
  • Next week

Fixing bugs.

Week 141 : 23rd - 29th September

  • Info

We encounter some driver issues with the optimizations and we are obligated to restrict those to the hardware and operating systems that supports them. We are trying to find workaround solutions but sometimes it is not possible and all we can do is to disable the optimization for these specific setups.

  • General development
    • EEVEE: Speedup: Don't request orco layer if not needed 1c1a3198af9.
    • Fix T67342 EEVEE: Uninitialized buffer when changing screen size f9ef0e1bdec.
    • Fix T68736 EEVEE: Loose subsurface node breaks shader a2cc855dbac.
    • Fix T70004 EEVEE: Texture Coordinate Node in world shader render artifacts c6995b30952.
    • Fix T70107 EEVEE: Crash using Irradiance Volume with Curve inside 0ac7b51dee1.
    • Fix T70226 EEVEE: Crash/Assert entering edit mode with instanced meshes... ad22d3111f2.
    • Fix T69377 Texture flickering when selecting in solid viewport (AMD Pro driver) df3891ed817.
    • Fix T69941 Assert selecting UVs 7bbdc6996a7.
    • Fix T70106 Objects with multiple materials are not displaying correctly c6018391765.
    • Fix T70247 Crash on enter edit mode with UV editor opened e51b93473a2.
    • Object Mode: Fix missing ubo assert with irradiance grid c525d0e3aee.
  • Next week

Focus on bugfixing.

Week 140 : 16th - 22nd September

  • Info

I had to take some more days to recover from illness.

Draw Manager refactor is finally in.

I did a fix to nodetrees avoid complex problem with bump mapping.

  • General development
    • ShaderNodeTree: Add flatten function to get rid of nodegroups 3a1b0c0f3035.
    • Fix T69971 EEVEE: Bump does not work using a UVMap node as input f4f190a399fb.
    • DRW: Refactor to support draw call batching 3a08153d7a84.
  • Next week

Focus on bugfixing.

Week 139 : 9th - 15th September

  • Info

I was ill this week and still am a little, it was hard to work proficiently.

I committed the optimization for volumetrics which fix a huge bottleneck in Volumetrics for EEVEE. We found a nasty bug in the old volumetric integration method that will change all files that use volumetrics. This is a compatibility breaking bug, EEVEE from 2.80 will not render volumetrics the same as 2.81 and onward.

I committed the huge DRW refactor but it introduced a nasty crash on NVIDIA + Windows. So we have reverted it to avoid instability in the master branch and we are looking into fixing the bug first before bringing the refactor back.

I also made some proof of concept implementation of the sunlight extraction feature. This may be ready for 2.82 T68478.

  • General development
    • Revert "DRW: Refactor to support draw call batching" fd5c1972cd5.
    • DRW: Refactor to support draw call batching ce34a6b0d72.
    • EEVEE: Volume: Fix error in fallback integration algo f1b52ef2116.
    • EEVEE: Volume: Speedup: Use Image load store extension caf494444cd.
  • Next week

Fix the DRW refactor bug and start stabilization of master (bug fixing).

Week 138 : 2nd - 8th September

  • Info

The shadow refactor is in master, as well as the bump mapping improvement. The draw manager refactor is also on it's way. I looked into volumetric optimization and should be easy and done next week.

  • Next Week

Finish merging branches and implement volumetric optimization T68475.

Week 137 : 26th - 1st September

Old ESM defaults
New Defaults
High bit depth (less bias)
Anti-aliased shadow
High resolution (less bias)
User bias reduce aliasing artifacts
Correct Soft Contact Shadow (no shadow-map here)
  • Info

I spent my week focusing on T68471 (see D5659 for all changes). I posted my work in the tmp-eevee-shadow-refactor branch and it should be merged soon.

Here is how the new system work: A default automatic bias is computed based on shadow-map resolution and bit-depth to ensure that no self shadowing will ever occur. Increasing resolution and bit-depth will reduce this bias and reduce light leaking. This means the bias parameter (in the light panel) is only here to mitigate shadow-map aliasing artifact.

Contact shadows are now less prone to self shadowing artifacts and use the same soft shadow algorithm.

There is a lot more change and I encourage you to see the full list of change here D5659;

This refactor also touched the SSS translucency code. The Use Separate Albedo is now gone because it is always enabled (and use even less memory). Also SSS is now correctly blended (with Mix Shader node) like in Cycles.

  • General development
    • Fix T68687 Eevee: Modulo node behaves unexpectedly/inconsistently d9be59e872f.
    • Fix T69051 Vertex Paint: Selection not show in vertex select mode. 7273dbd47b7.
  • Next Week

I'll try to make all my branches merge to master and start looking at T68475

Week 136 : 19th - 25th August

New improved bump mapping
  • Info

I looked into improving the EEVEE regression tests D5507 and improved bump support D5531.

  • General development
    • Fix T68954 UVEdit: Auto Smooth option conflicts with uvs display 1a6491639a8.
    • Fix T68826 Eevee: Multi-Mat not working if switching from Solid shading d357e7b0653 742119bcb50.
    • GPU: Fix Element index range calculation 8a11e702525.
    • Fix T68837 Eevee: Fix "GPU failed to find function math_max" message 1658fd1f7e3.
  • Next Week

I'll focus on T68471 which is a main target for 2.81.

Week 135 : 12th - 18th August

New transparency
Holdout node
  • Info

The batch cache refactor have been merged to master.

A big news is the improved blending in EEVEE. It deprecates the Multiply and Additive blending as you can now create shader with both behavior on the same same surface. This improves EEVEE compatibility with Cycles. Also this allowed us to support the holdout node.

  • General development
    • DRW: Fix couple of issues in DRW_draw_select_id c3d037e88f8.
    • Eevee: Add support for the holdout node 67c10dbf132.
    • Eevee: Improve Transparent BSDF behavior d5002f007e8.
    • Eevee: Remove Additive & Multiply Blend mode 13d469e6f0c.
    • Eevee: Fix background alpha regression 4074ab361e1.
    • Eevee: Fix tangent map node not using the right UVMap 5ff8fcfa724.
    • Eevee: Fix Regression when using ssr and default shader f0f5e11b33e.
    • Fix T68537 Eevee: Modulo node behaves unexpectedly/inconsistently 8a338950c6d 3e27dd5b553.
    • Fix T68689 Eevee: Fix infinite recursion cause by versioning code b5fe838d440.
    • Fix T68715 Object Mode: Hidden polygon Edit mode are hidden in Object mode ecc3b033a7d.
    • Fix Unreported crash when opening linked material using nodegroups 4f03217dade.
    • GPU: Vertex Format: Add function for safer GLSL attrib name deb5416a1a5.
    • GPU: Vertex Format: Increase number of byte per attribute name 6fcd071c7bc.
    • Mesh Batch Cache: Refactor + Multithread 9c010c44f42.
    • Mesh Batch Cache: Split UV an tangent into 2 distinct VBOs 80e9eb66d56.
  • Next Week

I plan to merge a big refactor of the DrawManager that should improve CPU performance of large scene (see D4997). Also I've started to look into better bump support T68476.

Week 134 : 5th - 11th August

  • Info

I made plans for 2.81 release and further. The task about the features can be found [[1]].

I also ported the edit mesh analysis overlay to "mesh extract" so it is now compatible with meshes with modifiers. This should enhance the mesh debugging for 3D printing.

  • Next Week

I plan to merge the batch cache refactor and start to tackle some low hanging fruits for EEVEE.

Week 133 : 29th - 4th August

  • Info


Week 132 : 22nd - 28th July

  • Info

I've rewritten the mesh batch cache twice. It's now multithreaded and can easily be extended to be multithreaded for all objects. I could not make IndexBuffers generation multithreaded at the element level so we just run one task for each buffer. Updating index buffers is the current bottleneck and we should get rid of it when possible (when topology does not change) to speedup mesh update.

This work can be found in the tmp-batch-cache-cleanup branch.

  • General development
    • Fix T65386 Eevee: Crash after baking indirect lights or cubemap ef0e06d7644.

Week 131 : 15th - 21th July

  • Info

Fixing critical bugs for the release. I also started rewritting the mesh batch cache for better code quality and potential speedups.

  • General development
    • Fix T67033 Eevee: Random Flickering Materials d5c0a02f867.
    • Fix T66811 Eevee: Flickering in weight paint mode 687f1df5dbe.
    • Fix T66983 Wireframe Display in edit mode edges missing when overlays are disabled d061154b932.
    • Fix T66707 Modifying bone's 'Custom Object' reference shape causes blender to crash 4404a0dcd4c.

Week 130 : 8th - 14th July

  • Info

Still fixing bugs.

  • General development
    • Fix T61770 Multiple Hair Systems Not visible while in particle edit mode 526876a6348.
    • Fix T57489 Eevee: Texture coordinate object reference not working for world 91b42627287.
    • Fix T65850 Sculpt: Vertices not hidden if using shape keys 56ec8108e27.
    • Fix T66630 X-Ray + Subdivision surface Face select problem 6f1190cbf0e.
    • Fix T62580 Workbench: Shadow glitch due to degenerate threshold 2893417d670.
    • Fix uninitialized loop variable 7bf820fb966.
    • Eevee: Fix first sample being accumulated without SSR 484794ce674.
    • Fix T65761 Eevee: SSRefraction not working on first sample 986ff461fb7.
    • Fix T66573 Heap Corruption when baking to irradiance volume probe f04424a15d9.
    • Fix T63447 Particle system: No particles after switching from hair to ... 8d6a5fb5d3c.
    • Fix T63659 "Viewport render image" don't process corectly "Display As" option 3f6e17ddaf8.
    • Fix T66008 Viewport: hidden edges are partially visible 7767e080a03.
    • Fix T65534 Eevee don't respect active UVmap 1715c396e45.
    • Fix T66351 Wireframe display in sculpt-mode broke when hiding parts 8a7c2c4192a.
    • Fix T66348 Eevee: Broken shader if using textures and shader_to_rgb node 9526e236fce.
    • Fix T66475 Spin Modifier: Merge Vert Makes mesh disappear 473259f98bc.
    • Fix T66470 Planar track is not adjustable 6b7bc30c643.
    • Fix T62941 Subdivision Modifier Showing all face dots 226c6f086aa.
    • Fix T61129 Eevee: alpha texture shadow bug 0a16519f5df.
  • Next week

The first 2.80 RC has made the bug tracker explode. I will focus on high priority reports.

Week 129 : 1st - 7th July

  • Info

Still fixing bugs.

  • General development
    • Fix T66348 Eevee: Broken shader if using textures and shader_to_rgb node d8b6992a7d5.
    • Fix T66475 Spin Modifier: Merge Vert Makes mesh disappear 2748cf4e1ad.
    • Fix T66470 Planar track is not adjustable 5bd8bf41e09.
    • Fix T62941 Subdivision Modifier Showing all face dots b5ec7ec49d5.
    • Fix T61129 Eevee: alpha texture shadow bug 0511a08b9aa.
    • Fix T66372 Convert to mesh with subdivision breaks topology cc667854a94.
    • Fix T59225 Screw modifier not displayed when using single vertex 2866c742080.
    • Fix T66295 Collection instance duplicates don't have selection outline 57c26453f8a.
    • Fix T66322 Object with particle system have expanded selection region bc0a0a1005b.
    • Fix T65468 Nurbs: Broken display when hiding control points 983ca12d822.
    • Fix T65974 Workbench: transparency rendering broken cbc0ad07b3c.
    • Workbench: Combine Xray Alpha with object/material alpha ... 2002b29ecd2.
    • Fix T65771 Eevee: Volume Emission not working if density is zero c2a762c8e6e.
  • Next week

Next week is the RC so priority on critical bug fixing.

Week 128 : 24th - 30th June

  • Info

Highlight of the week is that displacement socket on Eevee material now behave in a more consistent manner that mimic cycles (note that displacement is still not supported, only its bump equivalent is supported).

I took some time with Antonio Vasquez to redesign GPencil drawing pipeline to fix all drawing issues with GPencil (alpha issue during blending, wrong masking behavior when stroke is behind an object). The implementation is a complex task and will be tackled for 2.81 (see T66293).

  • General development
    • Cleanup: EditMode: Remove uneeded shader depth bias c5eceb35829.
    • DRW: Add DRW_STATE_BLEND_CUSTOM 1f4e9754c02.
    • DRW: Fix point shaders not using gl_PointSize c74ccf6a970.
    • Eevee: Make use of dual source blending for volumetric resolve 2a22b8af04e.
    • Fix T65755 Wireframe: "In Front" (X-Ray) doesn't work with wire objects e47ce1f2d6d.
    • Fix T65942 Eevee: Reflection plane has "show data" checked by default 310bd2f811a.
    • Fix T65951 Saving project right before rendering (Cycles) causes empty render-preview b3a2de9d181.
    • EEVEE: Add better support for displacement relinking behavior 5b3530e4805.
    • ObjectMode: Fix selection points of LightGrids 4b124143b10.

Week 127 : 17th - 23rd June

  • Info

Still in bug fixing phase.

  • General development
    • Fix T65755 "In Front" (X-Ray) doesn't work with wire objects 1531fa218b2.
    • Fix T65960 Crash on entering Edit Mode of BesierCurve with modifiers b30f3f6c19c.
    • Fix T65918 DRW: Crash when add a any modifier to a curve 4dc71367c70.
    • MeshBatchCache: Speedup: Do not return valid batch if geometry is empty ba152cc88d9.
    • Fix T65631 Eevee: Translucent shader broken in Eevee when AO is enabled 82f569d75e6.
    • Cleanup: GPU: Fix codestyle f2651bc3383.
    • Fix T65689 Geometry overlaps axis selector 1dab26afb9c.
    • Fix T65805 Assert "Too many draw engines enabled at the same time" 741641f4c3b.
    • Fix T57650 UVEdit: selection not visible if behind unselected UVs 28b06b6a05f.

Week 126 : 10th - 16th June

  • Info

I reviewed Eevee's documentation and fixed some Eevee bugs.

  • General development
    • Edit Mode: Fix face alpha being too strong in xray mode c058c338648.
    • Eevee: Fix Contact shadows with Translucent BSDF a5a0f158e36.
    • Fix T61768 Eevee Offscreen rendering 5e626e76645.
    • Fix T64913 Eevee: shader compilation does not reset TAA 0707177ab86.
    • Fix T65569 Eevee: Volumetrics on alphablend surf. not working in renders 88cce6faea6.
    • Fix T65647 Eevee: Contact shadows "Softness" settings darkens objects 6e414b29108.
    • Fix T65406 Edit Mode: Edge selection is below wireframe overlay c84c59c81bc.
    • Fix T65669 Bones in Envelope Display break apart after selecting bone c49f91a3b60.
  • Next week

More Bugfixes.

Week 125 : 3rd - 9th June

  • Info

A lot of Eevee bug fixes this week.

  • General development
    • Eevee: Merge shadow map processing into one drawcall per light 942a748d5d5.
    • Fix T63701 Eevee: High Volumetric end distance darkens the image 73252d3f600.
    • Fix T63729 Eevee: Bump does not follow normal direction 76634a23bbf.
    • Fix T64214 Eevee: Issue with Emission node and Alpha blending ff7401b02c4.
    • Fix T64742 Eevee: SSRefract broken with planar reflections 3abb1695cfb.
    • Fix T65042 Eevee: Hair Info Tangent Normal not working correctly 2e4d27669be.
    • Fix T65118 Eevee: NaN when using bent normals 8fa65ed31b7 0cfdc8d182a.
    • Fix T65298 Eevee: Principled BSDF doesn't use specular with metals 98cea7edcef.
    • Fix T65378 Eevee: Glitches in ESM shadowmapping 4ddc8403148.
    • Fix T65372 Freestyle: Can't turn off line anti-aliasing in Eevee d77c2305a3d.
    • Fix T65383 UI graphics glitches on macOS with Intel HD 4000 2be3a75efd9.
    • Fix T65389 Edit Mesh: Face dots are not shown in Xray mode 6d143f3775d.
  • Next week

More Bugfixes & Documentation review.

Week 124 : 27th - 2nd June

  • Info

Nothing much other than bugfixes.

  • General development
    • Cleanup: DRW: Make clipped shader use UBO clip planes 554af9c6895.
    • Cleanup: DRW: Move WorldClipPlanes to builtin uniform 577d3498b4d.
    • Cleanup: DRW: Remove DRW_STATE_OFFSET ba75e93c888.
    • Cleanup: DRW: Rename DRW_STATE_BLEND_* for API clarity e0c1116ce3d.
    • Cleanup: EditMesh: Remove DRW_STATE_OFFSET_* 01f5ef82afd.
    • Cleanup: GPU: Move program point size to GPU_state 2100dba34bb.
    • Cleanup: Paint Overlays: Remove DRW_STATE_OFFSET_* f3fc8721712.
    • DRW: Add unit_state to avoid lots of DRWCallState duplication 7cdd5ed7bd2.
    • DRW: Fix crash when object has no bounding box 493eaaf213d.
    • DRW: Refactor to use object pointer for drawcall by default 596492e639f.
    • EditMeshMode: Reduce unselected face alpha 5241dd1daf1.
    • Eevee: Change default shadowmap near clipping distance b76ccc7f802.
    • Eevee: Fix assert when displaying transparent film checker 2783945b1b0.
    • Eevee: Fix crash caused by visibility calculation 9f2e154e020.
    • Eevee: Fix render depth pass being negative 24ac9706243.
    • Eevee: Fix render z-depth for orthographic camera af4feee61ce.
    • Eevee: Fix volumetric shader if nodetree uses a bsdf node 296527eab79.
    • Eevee: Render alpha blended objects when rendering probes 40207d656be.
    • Eevee/GPencil: Fix depth reading after render a74041c96c7.
    • Fix T64123 Eevee: Reflections Not Visible On Alpha Clip Materials 574e7903407.
    • Fix T64510 Armature: Empty Not Visible as Bone custom shape 846056de6b2.
    • Fix T64536 Eevee: Reflection texco no longer works 94370e23e97.
    • Fix T65017 Eevee: Render error if a SSS node is unconnected f962c701fe5.
    • Fix T65049 Crash cause by NULL geom pointer 8f4b7083d3a.
    • Fix T65066 Armature and bone selection is broken on macOS 4ad9d93fec7.
    • Fix T65226 Crash on entering in Edit mode with ASAN build 433c2d1dea3.
    • Fix T65319 Crash when selecting vertices in edit mode fc336f973d5.
    • GPencil: Remove uneeded storage->unit_matrix 32a2bfddcb4.
    • GPU: Enforce Uniform buffer alignment to 16bytes 092962cf72e.
    • GPU: Remove GPU_INDEX_U8 77f5210f223.
    • Selection: Remove armature bone filters 8a4a05ae85c.
    • Wireframe: Make wireframe's Xray slider default to 0 8cfd46a5b00.
  • Next week

More Bugfixes.

Week 123 : 20th - 26th May

  • Info

This week I did some refactor of the culling system inside the draw manager leading to less overhead and prepare for more future improvement. This makes the code much cleaner and makes things behave consistently.

Due to UI freeze we squeezed some last minute changes about the default studio light and edit mesh mode overlays.

  • Next week

Focus on bug fixes and performances.

Week 122 : 13th - 19th May

  • Info

This week I did some refactors for cleaning up the draw manager and its usage. I also remove the need for enabling volumetric and subsurface in eevee. They are automatically enabled if one material uses them.

  • General development
    • BLI_memblock: Add more options e5349f14eb1.
    • DRW: Add and use DRW_shgroup_uniform_vec2_copy 72a5e3f61a1.
    • DRW: Change Procedural function to use a GPUBatch 754ecd61aa2.
    • DRW: Fix threading hazard when rendering and using auto depth ed3f05aca9a.
    • DRW: Make fullscreen vertex shader position and uv without attributes 89673f0974d.
    • DRW: Make Instance count not a pointer b27492d078b.
    • DRW: Move ModelMatrix declaration to common_view_lib 20421ef9528.
    • DRW: Refactor: Use DRWCall to accumulate per instance attributes 8bc8a62c57f.
    • DRW: Remove ModelViewMatrix and ModelViewMatrixInverse 642c8010b21.
    • DRW: Remove pointers to materials ad0e95688d2.
    • Eevee / Workbench: Fix hair normals 0c4ce8e55e9.
    • Eevee: Add per material option to cull backfaces 0819013eb45.
    • Eevee: Fix Auto Tangent not working if active UV layer is greater than 3 6bb7eb17065.
    • Eevee: Fix volumetric shaders compilation error 987c6da6c0d.
    • Eevee: Make planar downsampling not use instance drawing cf8109d2aaa.
    • Eevee: Remove custom volumetric matrix 2bb788d4cd9.
    • Eevee: Remove the Subsurface Render checkbox b526221315e.
    • Eevee: Remove the Volumetric Render checkbox 52669dda804.
    • Eevee: Replace DRW_shgroup_empty_tri_batch_create by procedural calls 8406fabc874.
    • Eevee: Use dummy texture for GTAO when not enabled 60a4342557f.
    • Fix Shader compilation error on MacOS & some other platform/driver 8437519d028.
    • Fix T64455 Texture extension mode 'clip' defaults to 'extend' 2f6c4e5bb48.
    • Fix T64551 Crash on leaving local view on the shading tab e9b282617a9.
    • Fix T64574 Weird shadow mesh glitches in viewport 9bb42de8287 8950aa26151.
    • Fix T64601 Error division by zero in GPUVertexFormat 3db428406f6.
    • Fix zfighting from edit mode face overlays 37f87ae81bc.
    • GPU: Add GPU_vertbuf_discard and GPU_BATCH_UNUSED 20d9cd3a1fb.
    • GPU: Fixup and add assert to GPU_VERT_ATTR_NAMES_BUF_LEN bf45a46f814.
    • GPU: Move Material index to nodetree evaluation 2d28df783a0.
    • GPU: Remove ModelViewMatrix and ModelViewMatrixInverse usage b13e0568d3a.
    • GPUVertexFormat: Reduce size of structs 016fc7f0c23.
    • Mesh Batch Cache: Fix use of uninitialized variable 201ebc78e85.

Week 121 : 6th - 12th May

  • Info

I spent this week refactoring and cleaning up the code for better performance, architecture coherence and future development. This did introduce some instabilities but I do my best to fix them quickly.

  • General development
    • 3D Grid: Use View UBO & small cleanup d2520511d20.
    • BLI_memblock: New memory allocator 45caba37330 5f95a732cbf.
    • DRW: Add DRW_duplidata_get to create fast path for duplis b6b3a57c224.
    • DRW: Change function orders to improve CPU cache efficiency 0b88cd5032a.
    • DRW: Change Procedural function to use a GPUBatch 3453e698c88.
    • DRW: Copy matrix in case of ModelMatrixInverse being used e053f6b1d81.
    • DRW: Fix threading hazard when rendering and using auto depth 626016d2351.
    • DRW: Make batch validation run first during iteration 0030e4da707.
    • DRW: Make Instance count not a pointer 551b1781494.
    • DRW: Move all batch request functions to own header 05b0f52aa78.
    • DRW: Refactor: Use DRWCall to accumulate per instance attributes ba9811d9ce7.
    • DRW: Remove View dependant Matrices 1d833c8e5e2 0d8ab0eac60 0d8ab0eac60 e2d04229c38 f2f62b184c6.
    • DRW: Remove uneeded calls to drw_viewport_engine_data_ensure when iterating ac2e23c739a.
    • DRW: Speedup: Don't call GPU_shader_uniform_vector if not needed 9fea65a93de.
    • DRW: Speedup: Only do batch cache request and validation once for duplis 8d3e2ffa075.
    • Eevee: Fix Tangent vectors using NormalMatrix and make them world space 7ec7888ff38.
    • Eevee: Make planar downsampling not use instance drawing 817fc4297a2.
    • Eevee: Remove uneeded normalization bb41626ab3d.
    • Eevee: Replace DRW_shgroup_empty_tri_batch_create by procedural calls 88d77ffda82.
    • Eevee: Update matrices operations to not use combined matrices a298dde5d79.
    • Fix Crash with armature using custom shapes 895c41ec5d0.
    • Fix T64137 Empty Images flickering graphics when "Auto Depth" is enabled de9d846353b.
    • Fix T64158 Eevee: Mixed SSS shader becomes brighter and brighter 1a99b6fc7e8.
    • Fix T64284 Mirrored Instances have flipped normals/face orientation c0b8d071a75.
    • Fix T64296 Z-axis overlay vanishes at scene origin in 3D Viewport a951aa5f620.
    • Fix T64329 Crash when switching to Texture Paint 209c01a6ba6.
    • Fix T64363 Eevee: Texture coordinates node turns material color to pink f877022956d.
    • Fix T64366 DRW: Crash opening Mr Elephant scene since recent commit c74e9273a98.
    • Fix T64384 Crash when switching to wireframe on tree_creature blend 54ec0559c8e.
    • Fix T64399 Crash when trying to enter edit mode on instanced objects 7a3833ed235.
    • Fix T64420 Weight Paint colours not visible 1456b413067.
    • Fix T64464 App crashes when navigating between UV Editor and Viewport 3cac530ba69.
    • GPencil: Use common_view_lib.glsl 7f87e6e18f5.
    • GPU: Add GPU_vertbuf_discard and GPU_BATCH_UNUSED 0fb7ccc666d.
    • GPU: Move Material index to nodetree evaluation 83058ddda4a.
    • GPU: Refactor some shader for a bit more efficiency 9489fea07b6.
    • GPU: Remove GPU_INVERSE_NORMAL_MATRIX 7e380fd46a6.
    • GPU: Remove ModelViewMatrix and ModelViewMatrixInverse usage 02e590dce7d.
    • GPUViewport: Fix possible hash colision with enabled engines 1ae2385106c.
    • Mesh Batch Cache: Speedup: Only alloc gpu_attrs if needed and don't clear bb4b6cddcb8.
    • Mesh Batch Cache: Speedup: Use flags to early remove unecessary checks 7bfe70f2ba0.
    • Object Overlay: Add dupli fast path 6df7946f736.
    • Overlay Mode: Use common_view_lib 24aeb479be2.
    • Overlay: Remove use of NormalMatrix c9537ee5c3f.
    • Overlays: Use common_view_lib.glsl 632e0725d27.
    • Wireframe: Create dupli fast path using DRW_duplidata_get 9bfdc4826a7.
    • Wireframe: Refactor vertex shader to use less matrices 8c5c02932f2.
    • Workbench: Use common_view_lib and remove NormalMatrix usage 733811330c9 6006f86e07c.

Week 120 : 29th - 5th May

  • Info

A few minor speedups concerning drawing. Support for alpha background checkerboard for Eevee & Cycles. And finally refactor the sculpt mode drawing to allow different materials when drawing sculpt objects. Also reworked the Lookdev balls overlay to be included in the Bloom & Antialiasing Passes. The size of the Lookdev balls are now editable in the user preferences.

  • General development
    • DRW: Add debug utility for batch cache requests e8daa615704.
    • DRW: Add DRW_STATE_BLEND_PREMUL_UNDER e6705fad339.
    • DRW: Batch Cache: Add Loop normals calculation flag and cleanup style 413ffd4606f.
    • DRW: Draw checkerboard alpha pattern for Cycles 47717060af0.
    • DRW: Improve edit mode selection time when using auto-smooth c7767f1bcfd.
    • DRW: Speedup: Improve time to validate batch cache 88e20c663c6.
    • Eevee: Add support for alpha background in viewport b581f192928.
    • Eevee: Fix crash when rendering due to recent lookdev refactor a72a8315708.
    • Eevee: Lookdev: Cleanup implementation & support for Bloom and TAA e66629c1282.
    • Fix T63393 Eevee: Specular Shader's Clear Coat does not function 2445d5abc26.
    • Fix T63435 Eevee: Incorrect fresnel and normals for hair strands 7f366c048a5.
    • Fix T64009 Eevee: Normal Maps not working 782917648f6.
    • Fix T63997 Weird z-fight during weight paint 95e052f8308.
    • Sculpt: Refactor draw manager sculpt drawing mechanism b2f1a658741.

Week 120 : 22nd - 28th Apr

  • Info

Still focused on bug fixing.

  • General development
    • Armature: Speedup by removing unecessary check 7a48e250030.
    • AVI: Fix buffer overflow e85eb51a28d.
    • DRW: Use culling when selecting 905f2d84af4.
    • Eevee: Noise Texture: try to fix floating point accuracy issue 1fa7d51f342.
    • Fix T58966 Sculpted changes dissapear visually when selecting a second object d4827cfa812.
    • Fix T61184 Curve: linked curves with curve modifiers arent drawn correctly a14735d11d2.
    • Fix T62880 Severe FPS drop with multiple bone shapes 50d75cd528b.
    • Fix T63178 Eevee: animation render crash 148c0aa0faa
    • Fix T63784 Eevee: Black Diffuse with Principled BSDF and Mix Shader 16639c6f1a3.
    • Fix T63886 UV Edit: Crash after faces display turn off / on 8192bcd7c19.
    • GPUSelect: Improve selection time with particle instances d2f1705b15b.

Week 119 : 15th - 21st Apr

  • Info

I was sick and had to recover. Tried to focus on high priority bugs. Also merge some changes to edit mesh mode to improve readability.

  • General development
    • DRW: Add batch garbage collection 223f7e79f9f.
    • DRW: Expose VBO garbage collection timings 3368df4ab6e.
    • DRW: Make shaded batch validation more correct 973e64cf9cb.
    • Edit Mode: Change face mode edges display 6c83c928620.
    • Edit Mode: Make edit edges black by default bc8b884e532.
    • Edit Mode: Reduce Selected face alpha 4c4adeaa651.
    • Edit Mode: Rework display to differentiate selection modes 1a4b60c30db.
    • Fix T63284: Eevee: Crash when subsurface pass is enabled 10bf1d9ac1a.
    • Fix T63377: "Principled Volume" node not working anymore in EEVEE 8d3af588a23.

Week 118 : 8th - 14th Apr

  • Info

This was the homestretch week. I attended lots of meetings and I proposed a roadmap for integrating Vulkan (yet to be published). I took a break from bug fixing and worked on the first step to integrate Vulkan backend (opengl calls isolation & windowing system).

Note that this does not mean this is a priority but just something I would like to work on part time in the upcoming year.

Week 117 : 1st - 7th Apr

  • Info

Focus on bug fixing. Also fixed some minor hotspots.

  • General development
    • DRW: Fix hair count being limited by recent refactor af3f4f29e46.
    • DRW: Mesh Batch Cache: Fix error in loop custom data layer checking c6de149ee7d.
    • DRW: Speedup: Fix hotspot in DRW_mesh_batch_cache_get_surface_shaded f12040e088b.
    • DRW: Speedup: Replace bound tex/ubo tracking array by bitfields fefc9c95e48.
    • Eevee: Add python property update for render settings 3ab3f893a9d.
    • Fix T61035 Draw manager crash opening file with curves e559074c4e5.
    • Fix T61870 Eevee: Object's go completely black if they have a normal map ef91df608a3.
    • Fix T62892 Eevee: HDRI lightning glitch f0d6879f5c7.
    • Fix T63108 Eevee: Wrong Reflection plane matrix if camera view is not centered b26164ded5e.
    • Fix T63198 Eevee: Indirect lighting settings arent not updating in Lookdev c2f3ba64ce3.
    • Fix T63278 Eevee: LookDev: Volumetric on even if Scene World is off 9fdc16e2047.

Week 116 : 25th - 31st Mar

  • Info

Some small changes to Eevee and a lot of bug fixing.

  • General development
    • DRW/Eevee: Add correct support for Orco ec0eeb918ba.
    • Edit Mesh: Fix interpolation of gradient on edit edges 51f8e51d781.
    • Eevee: Fix reflection plane weird behavior when comming from lookdev mode 780219f868a.
    • Eevee: Implement Texture coordinate from object dec9c7d87e5.
    • Eevee: Material: Decouple transparent shadows from blend mode d6747f310f1.
    • Eevee: Modify tooltip about transparent shadow 2add3700966.
    • Eevee: Render: Reduce debug print amount to not decrease perf of rendering in background mode on windows7cbd1b0c98c.
    • Fix T62260 Edit Mesh: edges display bug on big geometries when looked up close 3aeb44cd796.
    • Fix T58387 Eevee: Voronoi(Cells) does not work on (amd + windows) d027df3add8.
    • Fix T61129 Eevee: Alpha texture shadow bug f0a20ae1c95.
    • Fix T62178 Eevee: Texture Box mapping not matching Cycles if object is scaled 42dd888b98b.
    • Fix T62566 Eevee: Cubemap doesn't bake from current frame of animation f9a69a481e4.
    • Fix T62680 Eevee: Mirrored objects have flipped binormal vectors in LookDev afaa832a85f.
    • Fix T62856 Eevee: Toon BSDF and viewport/UI oddities e59a2fcc35c.
    • Fix T62862 Eevee: Glitchy reflections in ortographic view 6d1921dd816.
    • Fix T62930 Eevee: Wireframe input node not working with certain compiler 420f30efe7e.
    • Fix T62997 Eevee: visual artifacts during irradiance volume baking 96d200775a6.
    • Fix T63115 Crash upon switching to textured/rendered mode 024d02256e6.
    • GPU: Python: Fix color difference when rendering to gpu_py_offscreen 4d71b655ec0.
    • GPU: State: Replace GL_BLEND by GPU_blend c602ec74fdd.

Week 115 : 18th - 24th Mar

  • Info

Nothing special this week. A lot of bug fixes and bug tracker cleaning.

  • General development
    • GPU: State: Disable polygon smooth and line smooth when running --debug-gpu 53cd37d5102 72c323d50c2.
    • GPU: Replace some glEnable/glDisable but GPU_state calls ed9af18c762.
    • GPU: Remove unused and deprecated GPU_line_stipple() ee5e7a006e7.
    • Edit Mesh: Rework "in front" + "hidden wire" drawing d057dea7ae4.
    • Edit Mesh: Draw loose edges in edit mesh mode if there is a modifier stack f71e8617e03.
    • Eevee: Add small optimisation for Curve Mapping nodes c49a70bcd11.
    • Eevee: Fix tangent vector not normalized before interpolation. 8b00712b55e.
    • Eevee: Normalize Tangents after transform to world space 27109fd209c.
    • Eevee: Opti: Don't consider lights that have no power 839fe4e01c4.
    • Fix T57617 Volumetrics doesn't work on the Orthographic Camera 7b3e1149757.
    • Fix T58392 Texture limit size not working 6c0bd890475.
    • Fix T58550 Dragged in images dont overlap properly c5fc8611728.
    • Fix T58748 Mirror modifier: edges/verts invisible unless face is present 1cf592e62e3.
    • Fix T59719 Bake Indirect Lighting doesn't update env map reflection 603a37fa89b.
    • Fix T60190 Z-fighting with (Culled) Backface f391362f8cd.
    • Fix T60684 Fourth and subsequent vertex color / UV layers displayed black bd803939957.
    • Fix T60969 Eevee: Volumetrics broken with dupli objects dcbc46dacb2.
    • Fix T61104 Compositing two scenes with different output scales crashes ce09b93955d.
    • Fix T61326 "In Front" option not working on edit curves bff472d2ff2.
    • Fix T61475 Particle edit does not render children if path step > 7 e72dc667c4d.
    • Fix T62097 Bone transparancy not enabled when Xray enabled 16087eb911a.
    • Fix T62839 Eevee: object scale changes normal map output in eevee f6a6770f06e.
    • Fix T62845 Eevee: VSE preview crash when setting rendered (EEVEE/Workbench) 0a89c3954f4.
    • Fix T62869 Transparent background not working in Xray Mode / Wireframe e77dc3e7ffd.
    • Fix T62873 GPUShader: compile error (when clipping in viewport) 13832988add.
    • Fix T62884 Missing control point in unselected mask handles 0f8da4f014a.

Week 114 : 11th - 17th Mar

  • Info

Nothing special this week. A lot of bug fixes (mostly for Eevee) and bug tracker cleaning.

  • General development
    • Despgraph: Make dupli objects inherit the parent's display type 729a1ab6a0f.
    • DRW: Fix missing state reset before draw pass ccb4484ea34.
    • Eevee: Fix black mesh when tangent is not present 7fb7d20c19e.
    • Eevee: Fix tangent being renormalized after interpolation 1d6009d7aab.
    • Eevee: Planar Ref.: Invert view matrix to remove triangle front face flip aaeca5d8724.
    • Fix T61857: Eevee: DOF not working if the camera is in orthographic mode fe40e184a69 66225e84cfe.
    • Fix T55620: Eevee: Artifacts with SSR and planar reflection 795bddf2bda.
    • Fix T58793: Eevee: Volumetric Clouds in Eevee not working | MacOs 3ab879ed5a5.
    • Fix T58610: Eevee: camera motion blur renders only one viewport sample f7d415ab42c.
    • Fix T58694: Eevee: Wrong result when using normal map and face is flipped 81531d452c5.
    • Fix T59448: Eevee: broken Area Light shadows for square and rectange shape 3952fd199ac.
    • Fix T59501: Eevee: doesn't use integer node sockets bf9904ec801.
    • Fix T60005: Eevee: Volume material doen't write alpha 3146a07e3ec.
    • Fix T60170: Eevee: smoke color does not apply permanently d0fb0d0a9d0.
    • Fix T60802: Eevee: No diffuse when using Clearcoat + Add shader 31fba57677a.
    • Fix T60902: Eevee: Environment texture partially visible on transp. render 41cb5658803.
    • Fix T60803: Eevee: Artifacts with SSR + Reflection Plane + 0 roughness 3600bb79d05.
    • Fix T61380: Eevee: Geometry normal node incorrect for backfacing faces in Eevee f16bdf1075b.
    • Fix T62621: Eevee: object scale changes tangent node output in Eevee 86646dab7c4.
    • Fix T59943: Workbench: Color banding present in Workbench render but not in viewport 99fe7742987.
    • Fix T61526: Viewport: hair doesn't render in workbench but does with openGL d438120fe3f.
    • Fix T62279: DRW: Rendering simple geometry corrupts with greasepencil layer e28f0f179d2.
    • Fix T62555: UI: Viewport borders flicker when splitting said viewport dbfbd6b9043.
    • Particle: Remove Billboard Particle code efdde88dfc9.
    • View3D: Fix object without bounds displaying bounding boxes 9f4ec02bb40 0142c825b59.
  • Next week

Focus on bug fixes.

Week 113 : 4th - 10th Mar

  • Info

Highlight of the week are the addition of a setting to remove Antialiasing from Edit Mode wireframes, and the shader output nodes now working from inside node groups properly.

  • General development
    • DRW: Fix GL state issues due to state not being reset after drawing 6867821c4ab af72fc75559 81283b1c81e.
    • Eevee: Update LTC code a808b58e07d.
    • GPU Extension: Add OS defines 9c435200102.
    • Fix T58890: Sculpt Mode not updating in LookDev or Rendered d77b7b097d3.
    • Fix T59140: Loose edges of final mesh does not display in edit mode 81ae7773e74.
    • Fix T59877: EEVEE: Object Info node random value does not work with Duplis dabf5931636.
    • Fix T60171: Hair Particles Not Displaying in Viewport 9ad156374f5 fbfdfcb947b.
    • Fix T61778: Crash when adding material slot to object c94db5d1c7e.
    • Fix T62066: Seg Fault Baking Light Cache with "--background" Flag 97b1739cf14.
    • Fix T62220: Solid shading mode - Shadow glitch 9d3eec785b4.
    • Fix T62259: EEVEE: RGB Curves behave differently in Cycles and Eevee e1a62fa1a61.
    • Fix T62262: Light "Show Cone" & stereoscopy volumes broken by MSAA 61039bf7137.
    • Fix T62355: Running blender 2.80 headless broken in recent builds da73f569172.
    • GPUMaterial: Make Shader Output nodes inside nodegroups work d1a744173e7.
    • Preferences: Add option to disable edit-mode wire Antialiasing 89db684d82f.
  • Next week

Focus on bug fixes.

Week 112 : 25th - 3rd Mar

  • Info

Armature wireframe drawing was brought back by enabling transparent bones when needing wireframe.

  • General development
    • Armature: Force Transparent bone in wireframe display type/mode fe5d26807b4.
    • Armature: Make selection only work on outlines in wireframe mode 495216d2b8b.
    • Armature: Remove the Transparent Bone overlay option 28ccc0fa2f1.
    • Hair Particle: Fix issue on OSX due to hardware accelerated subdivision 680c7209ecf.
    • DRW: Fix matflag not being updated after first drawcall 10afa74e824.
    • Fix T61801: Wireframes on curves not working 753e73009f7.
    • Fix T61878: Selection does not allways work in wireframe mode 4b916612e19.
    • Fix T62021: Wireframe input node doesn't work properly d7d180bd3d8.
    • Fix T62040: Irradiance Volume broken cd897c57f81.
    • Fix T62047: New wireframes missing fresnel effect 6194aa5ce97.
    • Fix T62075: Edges generated by solidify modifier does not appear faec3655d8b.
    • Fix T62090: Eevee shader compilation: undefined variable "att1_is_srgb" 66228d4362a.
    • Preferences: Remove warning concerning selection in edit mode with MSAA 5397f1e45db.
  • Next week

Focus on bug fixes.

Week 111 : 18th - 24th Feb

Random Color wireframes
  • Info

This week's highlight is the addition of the long awaited colored wireframe mode. Two color mode are be available, object (using the object color) and random (which color the objects the same way as the random option in solid mode). More info in the commit itself. I also had to fix some problems with the multires drawing code.

  • General development
    • Wireframe: Add object and random coloring option in wireframe mode 73720586496.
    • Fix T61837: Assert in Eevee multiresolution modfier in sculpt mode 0ca623362d5.
    • Sculpt Overlay: Fix mask drawn as flat shaded when smooth shading enabled 1381a4a948a.
    • GPUBuffers: Fix fast navigate in on smoooth multires grid 2f8d8b5e5e4.
    • GPUBuffers: Fix/cleanup multires implementation e35b7e73267.
  • Next week

Finish the Armature Wireframe and continue bug fixes.

Week 110 : 11th - 17th Feb

  • Info

The "Object wireframe drawing" refactor has been finished. It now draws the same on all platform (using a geometry shader to draw arbitrary thick lines on OSX) and uses MSAA for antialiasing.

  • General development
    • DRW: Fix Crash when enabling object wireframe option 11b8d8a8387.
    • Fix T61374 : vertex not visible/selectable if it is at objects origin d07cde8de8e.
    • Fix: Eevee SSS not rendering as expected 23c14a0bbac.
    • GPU: Change multisample resolve shader to output min depth 9c49c2ef0c5.
    • Overlay: Remove extra contour drawing in wireframe mode d62f8a31763.
    • Sculpt Draw: Add support for wireframe geometry 9ab99ff26b5.
    • Wireframe: Add depth offset to prevent zfighting of wireframe overlay 600da00a94e.
    • Wireframe: Add workaround for osx wide wires 2cccffd20b6.
    • Wireframe: Fix Artifacts with MSAA 7a8a2211d18.
    • Wireframe: Fix selection broken since recent wireframe refactor 28901820a44.
    • Wireframe: Refactor to use GL_LINES instead of triangles with alpha blend e49d9555418.
  • Next week

Add back wireframe armature drawing mode and as usual bug fixes.

Week 109 : 4th - 10th Feb

  • Info

The "Edit mode wireframe drawing" refactor has been finished. It now draws the same on all platform using a geometry shader to draw arbitrary thick lines and use analytic AA instead of MSAA.

We also changed the active face color hint to be a mix between the active color and the face color. This is because drawing a contour line around the active polygon was not working well with the new drawing method.

  • Next week

Refactor object mode wires drawing as usual fix bugs.

Week 108 : 28th - 3rd Feb

  • Info

I've added support to transparency for solid mode. It is supported in object and material color mode. Transparency can be changed by tweaking the alpha of the main color. It uses the same Order Independant Transparency as the Xray mode.

I also started working on the edit wire refactor but it is not finalized. As it is a crucial feature I decided to not commit the changes yet. Changes should arrive in master this week.

  • General development
    • Fix T61028: Crash when entering wireframe view d16e4d077df.
    • Workbench: Make Material transparency part of the rgba color picker 1a61c209a0f.
    • Workbench: Opti: Only request OIT buffers if needed 43150b02a00.
    • Workbench: Support transparency from object color alpha 2cc69a5e202.
    • Workbench: Add "Shadow" factor to Xray 8134f3f0a6b.
    • Workbench: Add transparency support for materials bc99f4903c5.
    • Object Mode: Fix reading past buffer end when drawing camera d88492d4ad4.
  • Next week

Finish the edit wire refactor. More bug fixing.

Week 107 : 21th - 27th Jan

  • Info

On request from the Spring team I implemented a new Depth Of Field algorithm for the workbench engine. This is a must for layout work and the actual algorithm used is way faster than EEVEE's one.

  • General development
    • Workbench: Depth Of Field: Improve noise and Large radius 314ea1b1c7d.
    • Workbench: Depth Of Field: Add toggle option in shading popover c1814d593d1.
    • Workbench: Depth Of Field: Cleanups 3223644d141.
    • Workbench: Depth Of Field: Optimisation 71e30028240.
    • Workbench: Depth Of Field: Initial Commit 3f6e14e667c.
    • T60745: GPU texture alloc failed when opening Preference Windows aae2bf77351.
    • DRW: Fix corner indices order in clipping plane setup 14b5668c601.
    • GPUShader: Add GPU_VERTEX/FRAGMENT/GEOMETRY_SHADER defines ba4de7f1a58.
  • Next week

Next week will be focused on adding transparency support to solid mode. Then I'll refactor edit mode drawing to revert back to a traditional wireframe drawing.

Week 106 : 14th - 20th Jan

  • Info

Fixing bugs and polishing features.

  • General development
    • DRW: Increase frustum culling precision d5b4d71ee7b.
    • DRW: Use name buffer to request uniform location before drawing. e3b3b320768.
    • Edit Mesh: Improve selected double vertices visibility ee0c2e9b870.
    • GPUInterface: Add builtin check in uniform location request. 6dccc7cdab1.
    • Object Mode: Outlines: Add support for thicker outline 209afa28c6e.
    • Object Mode: Grid: Improve precision and reduce code complexity b5bc2158a07.
    • EEVEE: Physically based defaults for Bloom and Shutter 16fac2149b7.
    • Fix T59482: Creating 2 Particle systems breaks the app 21fedfbca02.
    • Fix T60332: Lattice objects do not display properly in Edit mode dd5602a1e52.
    • Fix T60476: Loose vertices only partially drawn 6f9e3e9d330.
    • Fix T60545: Buffer overflow in selection batch creation dc7e4929894.
  • Next week

I will prioritize working on some features needed by the Spring team: Transparency & DoF in workbench engine.

Week 105 : 7th - 13th Jan

  • Info

This week was focused at finishing the UVedit and selection batch refactor started before vacation.

Edit mesh selection has been changed a bit and should behave more consistently when selecting vertices in mixed vertex and edge mode.

Another notable workflow improvement is the possibility to display texture without interpolation (closest/nearest interpolation) in workbench and the texture paint overlay. This was a reqested feature to work on lowpoly / pixelart assets.

  • General development
    • Fix T57371: Generative modifiers in editmode display vertex group weights 00d2237d2a3.
    • Fix T59990: Crash when entering edit mode with skin modifier enabled 3a9909f38e7.
    • BMesh: Add BM_face_calc_area_uv 74260a2b6da.
    • DRW: Fix texture paint crashing if object has no material slot bda2cd8ba5d.
    • EditUV: Only clear data VBO when selection changes 9f51fc656e2.
    • GPUMaterial: Cleanup / optimization 3bc87227f51.
    • GPUShader: Add selection id shader 9d19ff90760.
    • GPUShader: Cleanup Unused shaders 1459a704895.
    • Mesh Batch Cache: Put context evaluation out of batch cache 943852c0dc1.
    • Mesh Selection: Port to batch cache request 55ddb21b7ca.
    • Mesh Selection: Make Vertices not occluded by edges 44e3fc66c7e.
    • UVEdit: Port batches to batch request 5f3fdee53a3 621a6d4a5de.
    • UVEdit: Port texpaint_loop_wire to batch request 1c91b6ee298.
    • WM: Use draw manager to draw UV image editor spaces 86ec304ffab.
    • Workbench: Support node texture "closest" interpolation option 9177bb33f68.
    • Texture Paint: Add filtering option for texture paint overlay b98e6743dca.
  • Next week

I will still focus on bug fixing.

Week 104 : 30th - 6th Jan

  • Info