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 8beb7c838f.
    • GPencil: Refactor: Implement rounded caps e42f30d45e.
    • GPencil: Refactor: Make light power match cycles and EEVEE 6af1309e05.
    • GPencil: Refactor: Use more correct depth merge approximation for 2D object 42580ddf92.
    • GPencil: Refactor: Use normal approximation for lighting 685c94eacb.
    • GPencil: Refactor: Blur Fx: Implement DoF option and fix radius world size 8f9c04762e.
    • GPencil: Refactor: First step to get rid of sRGB ec5b795d11.
    • GPencil: Refactor: Add world ambient lighting c0981f4a15.
    • GPencil: Refactor: Implement "Use Lights" toggle 3d2d9c7c5a.
    • GPencil: Refactor: Add other light types 907e99d08d.
    • GPencil: Refactor: Add new basic light system 2d3e86f2b0.
    • GPencil: Refactor: Add Swirl FX 0cc5a2bfd1.
    • GPencil: Refactor: Add Wave FX 0509f4149e.
    • GPencil: Refactor: Add Flip FX 27fa133435.
    • GPencil: Refactor: Add Rim FX d56f1a5f44.
    • GPencil: Refactor: Add Colorize FX 7359bec21b.
    • GPencil: Refactor: Add Shadow Effect 4f08463279.
    • GPencil: Refactor: Add Glow effect 2e5d299823.
    • GPencil: Refactor: Add Pixelize effect f2bc524e64.
    • GPencil: Refactor: FX: make the Blur not dependant on sampling parameter 3520b3379c.
    • GPencil: Refactor: Add invert masking 38f537c588.
    • GPencil: Refactor: Base implementation of VFX for gpencil 2d751d44ee.
  • 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 a0b953374a.
    • GPencil: Refactor: Add Top to bottom layer masking using stencil 6bcd877ebb.
    • GPencil: Refactor: Change Mask Behavior eb3fe4c848.
    • GPencil: Refactor: Speedup: Only blend pixels rendered in the layer 8ea92115f3.
    • GPencil: Refactor: Implement Layer Masking a3c998e4f3.
    • GPencil: Refactor: Add depth merge pass 2cef0182fb.
    • GPencil: Refactor: Add depth test in the fragment shader b9bcc12eb9.
    • GPencil: Refactor: Add support for layer blending 170680b544.
    • GPencil: Refactor: Add offscreen compositing foundation 4ba94091be.
    • GPencil: Refactor: Implement Object sorting 81436b95bd.
    • GPencil: Refactor: Implement Stroke self overlap option 3adcfeac96.
    • GPencil: Refactor: Implement layer tint 5cf56f6ae8.
    • GPencil: Refactor: Add Dots & Square drawing type 9ad8f9e3ba.
    • GPencil: Refactor: Improve stroke color mixing support 2494b982dd.
    • GPencil: Refactor: Add UV / Texture support to strokes f883a9c9bb.
    • GPencil: Refactor: Add basic vertex color support 985a9dba61.
    • GPencil: Refactor: Implement Checker Fill type (later removed) 6200ea886c.
    • GPencil: Refactor: Add support for fill textures 076eb5c87a.
    • GPencil: Refactor: Put fill uvs into bGPDspoint 018d778451.
    • GPencil: Refactor: Add basic Material color support via UBO 7734b00563.
    • DRW: Add DRW_shgroup_stencil_set to set all stencil test values 3d78e02837.
    • DRW: Add subtract blend logic 18c4fcb9a3.
    • GPU: Framebuffer: Add GPU_framebuffer_multi_clear db21312bfb.
    • BLI_memblock: Fix BLI_memblock_destroy not freeing all elements 980d1d5527.
  • 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 4949a62d4d.
    • Overlays: Armature: Fix Crash entering armature edit mode dcded19507.
    • Overlays: Armature: Use Wire AA on custom bone loose edges b9f896f6f1.
    • Overlays: Cleanup & enable line AA on in front passes 1b33e1f9ae.
    • Overlays: Fix bone outline antialiasing d40579c62b.
    • Overlays: Fix crash in select mode with Lock Object Modes off d21a8dcae2.
    • Overlays: Fix dashed curves and loose edges 6d2bc870a7.
    • Overlays: Fix T72147 Blender crashes when Lock Object Modes off fda791ab12.
    • Overlays: Fix unreported crash on startup caused by new shader fe605080ef.
    • Overlays: Fix vertex discard issue on Nvidia hardware 1e480840a2.
    • Overlays: LightProbe: Simplify drawing of irradiance grid data 4705aa4fe5.
    • Overlays: Outlines: Simplify drawing code a77fe7eb5c.
    • Overlays: Outlines: Bypass antialias path when not needed 5356c90a46.
    • Overlays: Outlines: Fix occluded alpha being too low 798b977d95.
    • Overlays: Simplify outline rendering by using the antialiasing pass 6d3eb85f66.
    • Overlays: Wireframe: Fix Edges not being culled correctly 37cd7b25dc.
    • Overlays: Wireframe: Fix missing loose edges in object mode 6fd2e65295.
    • Overlays: Wireframe: Improve Z-fighting / missing information stippling a81fdefdde.
    • Workbench: Fix missing Clipping state when usint Alt+B clipping f7bd56bf22.
    • GPencil: Refactor: Add back basic fill drawing 8e3c891229.
    • GPencil: Refactor: Add new logic to create batches and store draw passes 12034dc4aa.
    • GPencil: Refactor: Add quick 3D/2D stroke ordering for testing 3701305e87.
    • GPencil: Refactor: Add thickness support 32b8eab5cf.
    • GPencil: Refactor: Draw gpencil strokes using instanced quad a5e6e56a6d.
    • GPencil: Refactor: Fix fill stroke indices afecc4e976.
    • GPencil: Refactor: Fix miter of endpoints 935198aa8a.
    • GPencil: Refactor: Fix stroke end segment not drawn because of 180° angle 1f185740c4.
    • GPencil: Refactor: Implement Miter corner logic e87804f2ba.
    • GPencil: Refactor: Quick implementation of object matrices 090127099d.
    • GPencil: Refactor: Rename variables to match naming convention 4760d44e82.
    • GPencil: Refactor: Use iterator to populate draw passes 10c1823899.
    • GPencil: Use debug_value of 50 for testing new refactor e6fc0a39de.
    • Draw Manager: Add new DRW_shgroup_call_instance_range 82c135816f.
    • GPUVertFormat: Add GPU_vertformat_multiload_enable f7fc37e46c.
  • 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! 7164e63fef.
    • Overlay Engine: Fix Sculpt Mask overlay 915e54ee9d.
    • Overlay Engine: Add SMAA to replace FXAA 4926e7413d.
    • Overlay Engine: Fix loose wire showing after edit mode and not showing in.. 2c5cd812f7.
    • Overlay Engine: Fix issue with facing overlay 2367fd9e1f.
    • Overlay Engine: Fix/Improve Temporal AntiAliasing 4e298108a3.
    • Overlay Engine: Fix crash when enabling pose bone selection overlay 120a7e1b44.
    • Overlay Engine: Wireframe: Fix wireframe overlay on top of infront objects 626e291d1c.
    • Overlay Engine: Fix armature shape always transparent d33477d1a4.
    • Overlay Engine: Fix Paint overlays disapearing because of TAA 5daca04d4e.
    • Overlay Engine: Fix Armature bone toggle da13ddb65a.
    • Overlay Engine: Make overlay parameters reset TAA c980f9e652.
    • Overlay Engine: Update overlays on ID update 443effa45f.
    • Edit Armature: Tag armature after any operator to invalidate viewport 4baf738540.
    • Fix Wireframe issue with infront objects dfad332740.
    • Fix infront selectability of solid objects ded3fc0725.
    • Fix In Front object selectability 7330b347d7.
    • Fix FXAA alpha issue. d4420d7070.
  • 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 0a9ff3d25a.
    • Cleanup: DRW: Remove Hack of skinroot rendering 06bbcb8ffa.
    • Cleanup: DRW: Remove old unused code ae3687ac48.
    • Cleanup: DRW: Remove unused GPUBatches from Shape cache fa009ca0bd.
    • Cleanup: GPU: Remove unused shaders b695343c6c.
    • Cleanup: Make empty image use quad batch instead of specific batch a527a3e159.
    • Cleanup: Port back the custom shape ghash to revert perf regression 872cbbf84f.
    • Cleanup: Remove more unused files ed12703bd1.
    • Cleanup: Remove older draw engine from draw module 00ba7b314e.
    • Cleanup: Remove stipple start position duplication 75c39c8d23.
    • DRW: Fix an issue with instanced rendering and base_instance e0a0f1cbe0.
    • GPU: Batch: Add second instance buffer 52e69ce747.
    • GPU: Remove The use of geom shader for dashed lines 4bf0c9793a.
    • Overlay Engine: Add FXAA as base Antialiasing 98360afb33.
    • Overlay Engine: Add Temporal Anti Aliasing c7a13de09a.
    • Overlay Engine: Armature: Bone selection overlay 3cd95fc46f.
    • Overlay Engine: Edit Mesh: Port Occlusion detection to shader b5d3d4e41f.
    • Overlay Engine: Edit Mode: Change Normal overlays f21f35b68d.
    • Overlay Engine: Fix background image and sort empty images by Z depth d78bd78c14.
    • Overlay Engine: Fix overlay toggle not working bd09bd2ffa.
    • Overlay Engine: Fix selection outline antialiasing 2723032ca7.
    • Overlay Engine: Improve In Front pass ordering 7c17e76e0e.
    • Overlay Engine: Loose Edges/Verts a9c8eab4b6.
    • Overlay Engine: Only alloc extra depth texture if really needed 03cc35013c.
    • Overlay Engine: Particles 0417033bf3.
    • Overlay Engine: Sculpt Mask 5ea8bed6f2.
    • Overlay Engine: Wireframe: Put color evaluation in the shader cfcbb1daee.
    • Overlay Mode: Fix infront depth sorting 1552dd3f16.
  • 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 8e6882a70d.
    • Fix T70091 EEVEE: volumetric broken, not refresh d0d57f1712.
    • Fix T71050 EEVEE: Light Path Node broken in 2.81 883e22a92c.
    • Fix T71062 EEVEE: Holdout shader is broken in 2.81 d758a79557.
  • 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 382e7ce9ec.
    • Fix T70811 EEVEE: Alpha clip/hashed cause wrong alpha values 4142f3993c.
    • Fix assert and memleak in recent Skin Root Display patch 7e78fbf2de.
    • Fix T70249 EEVEE: Light bleeding on SSS translucency 131ac2ec82.
    • Fix T68380 Skin modifier root not displayed 4ddf3215a7.
    • Fix T70543 Rigid Body Collision Shape Not Displayed In Viewport 8956666899.
  • Next week

Fixing bugs.

Week 143 : 7th - 13th October

  • Info

Fixing bugs and regressions.

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

Fixing bugs.

Week 142 : 30th - 06th October

  • Info

Fixing bugs and regressions.

  • General development
    • Fix T70463 GPU: Very Slow Workbench/Eevee Performance 663d23dd9d.
    • Fix T70466 Rendering error when drawing multi-material meshes 11768d1c9f.
    • Fix T70331 Node group passthrough is broken 3734ae5d54.
    • Workaround for NVidia broken driver f8f28dc784.
    • Fix T70206 Texture Paint: UV shadow doesnt show up 574265f52f.
    • Fix T70414 EEVEE: Crash with 2 viewports, UV edit and sync selection 02ad256f9a.
    • Fix T70325 EEVEE: Performance regression with large nodetrees 5c79f2d0fb.
  • 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 1c1a3198af.
    • Fix T67342 EEVEE: Uninitialized buffer when changing screen size f9ef0e1bde.
    • Fix T68736 EEVEE: Loose subsurface node breaks shader a2cc855dba.
    • Fix T70004 EEVEE: Texture Coordinate Node in world shader render artifacts c6995b3095.
    • Fix T70107 EEVEE: Crash using Irradiance Volume with Curve inside 0ac7b51dee.
    • Fix T70226 EEVEE: Crash/Assert entering edit mode with instanced meshes... ad22d3111f.
    • Fix T69377 Texture flickering when selecting in solid viewport (AMD Pro driver) df3891ed81.
    • Fix T69941 Assert selecting UVs 7bbdc6996a.
    • Fix T70106 Objects with multiple materials are not displaying correctly c601839176.
    • Fix T70247 Crash on enter edit mode with UV editor opened e51b93473a.
    • Object Mode: Fix missing ubo assert with irradiance grid c525d0e3ae.
  • 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 3a1b0c0f30.
    • Fix T69971 EEVEE: Bump does not work using a UVMap node as input f4f190a399.
    • DRW: Refactor to support draw call batching 3a08153d7a.
  • 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" fd5c1972cd.
    • DRW: Refactor to support draw call batching ce34a6b0d7.
    • EEVEE: Volume: Fix error in fallback integration algo f1b52ef211.
    • EEVEE: Volume: Speedup: Use Image load store extension caf494444c.
  • 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 d9be59e872.
    • Fix T69051 Vertex Paint: Selection not show in vertex select mode. 7273dbd47b.
  • 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 1a6491639a.
    • Fix T68826 Eevee: Multi-Mat not working if switching from Solid shading d357e7b065 742119bcb5.
    • GPU: Fix Element index range calculation 8a11e70252.
    • Fix T68837 Eevee: Fix "GPU failed to find function math_max" message 1658fd1f7e.
  • 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 c3d037e88f.
    • Eevee: Add support for the holdout node 67c10dbf13.
    • Eevee: Improve Transparent BSDF behavior d5002f007e.
    • Eevee: Remove Additive & Multiply Blend mode 13d469e6f0.
    • Eevee: Fix background alpha regression 4074ab361e.
    • Eevee: Fix tangent map node not using the right UVMap 5ff8fcfa72.
    • Eevee: Fix Regression when using ssr and default shader f0f5e11b33.
    • Fix T68537 Eevee: Modulo node behaves unexpectedly/inconsistently 8a338950c6 3e27dd5b55.
    • Fix T68689 Eevee: Fix infinite recursion cause by versioning code b5fe838d44.
    • Fix T68715 Object Mode: Hidden polygon Edit mode are hidden in Object mode ecc3b033a7.
    • Fix Unreported crash when opening linked material using nodegroups 4f03217dad.
    • GPU: Vertex Format: Add function for safer GLSL attrib name deb5416a1a.
    • GPU: Vertex Format: Increase number of byte per attribute name 6fcd071c7b.
    • Mesh Batch Cache: Refactor + Multithread 9c010c44f4.
    • Mesh Batch Cache: Split UV an tangent into 2 distinct VBOs 80e9eb66d5.
  • 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 ef0e06d764.

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 d5c0a02f86.
    • Fix T66811 Eevee: Flickering in weight paint mode 687f1df5db.
    • Fix T66983 Wireframe Display in edit mode edges missing when overlays are disabled d061154b93.
    • Fix T66707 Modifying bone's 'Custom Object' reference shape causes blender to crash 4404a0dcd4.

Week 130 : 8th - 14th July

  • Info

Still fixing bugs.

  • General development
    • Fix T61770 Multiple Hair Systems Not visible while in particle edit mode 526876a634.
    • Fix T57489 Eevee: Texture coordinate object reference not working for world 91b4262728.
    • Fix T65850 Sculpt: Vertices not hidden if using shape keys 56ec8108e2.
    • Fix T66630 X-Ray + Subdivision surface Face select problem 6f1190cbf0.
    • Fix T62580 Workbench: Shadow glitch due to degenerate threshold 2893417d67.
    • Fix uninitialized loop variable 7bf820fb96.
    • Eevee: Fix first sample being accumulated without SSR 484794ce67.
    • Fix T65761 Eevee: SSRefraction not working on first sample 986ff461fb.
    • Fix T66573 Heap Corruption when baking to irradiance volume probe f04424a15d.
    • Fix T63447 Particle system: No particles after switching from hair to ... 8d6a5fb5d3.
    • Fix T63659 "Viewport render image" don't process corectly "Display As" option 3f6e17ddaf.
    • Fix T66008 Viewport: hidden edges are partially visible 7767e080a0.
    • Fix T65534 Eevee don't respect active UVmap 1715c396e4.
    • Fix T66351 Wireframe display in sculpt-mode broke when hiding parts 8a7c2c4192.
    • Fix T66348 Eevee: Broken shader if using textures and shader_to_rgb node 9526e236fc.
    • Fix T66475 Spin Modifier: Merge Vert Makes mesh disappear 473259f98b.
    • Fix T66470 Planar track is not adjustable 6b7bc30c64.
    • Fix T62941 Subdivision Modifier Showing all face dots 226c6f086a.
    • Fix T61129 Eevee: alpha texture shadow bug 0a16519f5d.
  • 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 d8b6992a7d.
    • Fix T66475 Spin Modifier: Merge Vert Makes mesh disappear 2748cf4e1a.
    • Fix T66470 Planar track is not adjustable 5bd8bf41e0.
    • Fix T62941 Subdivision Modifier Showing all face dots b5ec7ec49d.
    • Fix T61129 Eevee: alpha texture shadow bug 0511a08b9a.
    • Fix T66372 Convert to mesh with subdivision breaks topology cc667854a9.
    • Fix T59225 Screw modifier not displayed when using single vertex 2866c74208.
    • Fix T66295 Collection instance duplicates don't have selection outline 57c26453f8.
    • Fix T66322 Object with particle system have expanded selection region bc0a0a1005.
    • Fix T65468 Nurbs: Broken display when hiding control points 983ca12d82.
    • Fix T65974 Workbench: transparency rendering broken cbc0ad07b3.
    • Workbench: Combine Xray Alpha with object/material alpha ... 2002b29ecd.
    • Fix T65771 Eevee: Volume Emission not working if density is zero c2a762c8e6.
  • 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 c5eceb3582.
    • DRW: Add DRW_STATE_BLEND_CUSTOM 1f4e9754c0.
    • DRW: Fix point shaders not using gl_PointSize c74ccf6a97.
    • Eevee: Make use of dual source blending for volumetric resolve 2a22b8af04.
    • Fix T65755 Wireframe: "In Front" (X-Ray) doesn't work with wire objects e47ce1f2d6.
    • Fix T65942 Eevee: Reflection plane has "show data" checked by default 310bd2f811.
    • Fix T65951 Saving project right before rendering (Cycles) causes empty render-preview b3a2de9d18.
    • EEVEE: Add better support for displacement relinking behavior 5b3530e480.
    • ObjectMode: Fix selection points of LightGrids 4b124143b1.

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 1531fa218b.
    • Fix T65960 Crash on entering Edit Mode of BesierCurve with modifiers b30f3f6c19.
    • Fix T65918 DRW: Crash when add a any modifier to a curve 4dc71367c7.
    • MeshBatchCache: Speedup: Do not return valid batch if geometry is empty ba152cc88d.
    • Fix T65631 Eevee: Translucent shader broken in Eevee when AO is enabled 82f569d75e.
    • Cleanup: GPU: Fix codestyle f2651bc338.
    • Fix T65689 Geometry overlaps axis selector 1dab26afb9.
    • Fix T65805 Assert "Too many draw engines enabled at the same time" 741641f4c3.
    • Fix T57650 UVEdit: selection not visible if behind unselected UVs 28b06b6a05.

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 c058c33864.
    • Eevee: Fix Contact shadows with Translucent BSDF a5a0f158e3.
    • Fix T61768 Eevee Offscreen rendering 5e626e7664.
    • Fix T64913 Eevee: shader compilation does not reset TAA 0707177ab8.
    • Fix T65569 Eevee: Volumetrics on alphablend surf. not working in renders 88cce6faea.
    • Fix T65647 Eevee: Contact shadows "Softness" settings darkens objects 6e414b2910.
    • Fix T65406 Edit Mode: Edge selection is below wireframe overlay c84c59c81b.
    • Fix T65669 Bones in Envelope Display break apart after selecting bone c49f91a3b6.
  • 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 942a748d5d.
    • Fix T63701 Eevee: High Volumetric end distance darkens the image 73252d3f60.
    • Fix T63729 Eevee: Bump does not follow normal direction 76634a23bb.
    • Fix T64214 Eevee: Issue with Emission node and Alpha blending ff7401b02c.
    • Fix T64742 Eevee: SSRefract broken with planar reflections 3abb1695cf.
    • Fix T65042 Eevee: Hair Info Tangent Normal not working correctly 2e4d27669b.
    • Fix T65118 Eevee: NaN when using bent normals 8fa65ed31b 0cfdc8d182.
    • Fix T65298 Eevee: Principled BSDF doesn't use specular with metals 98cea7edce.
    • Fix T65378 Eevee: Glitches in ESM shadowmapping 4ddc840314.
    • Fix T65372 Freestyle: Can't turn off line anti-aliasing in Eevee d77c2305a3.
    • Fix T65383 UI graphics glitches on macOS with Intel HD 4000 2be3a75efd.
    • Fix T65389 Edit Mesh: Face dots are not shown in Xray mode 6d143f3775.
  • 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 554af9c689.
    • Cleanup: DRW: Move WorldClipPlanes to builtin uniform 577d3498b4.
    • Cleanup: DRW: Remove DRW_STATE_OFFSET ba75e93c88.
    • Cleanup: DRW: Rename DRW_STATE_BLEND_* for API clarity e0c1116ce3.
    • Cleanup: EditMesh: Remove DRW_STATE_OFFSET_* 01f5ef82af.
    • Cleanup: GPU: Move program point size to GPU_state 2100dba34b.
    • Cleanup: Paint Overlays: Remove DRW_STATE_OFFSET_* f3fc872171.
    • DRW: Add unit_state to avoid lots of DRWCallState duplication 7cdd5ed7bd.
    • DRW: Fix crash when object has no bounding box 493eaaf213.
    • DRW: Refactor to use object pointer for drawcall by default 596492e639.
    • EditMeshMode: Reduce unselected face alpha 5241dd1daf.
    • Eevee: Change default shadowmap near clipping distance b76ccc7f80.
    • Eevee: Fix assert when displaying transparent film checker 2783945b1b.
    • Eevee: Fix crash caused by visibility calculation 9f2e154e02.
    • Eevee: Fix render depth pass being negative 24ac970624.
    • Eevee: Fix render z-depth for orthographic camera af4feee61c.
    • Eevee: Fix volumetric shader if nodetree uses a bsdf node 296527eab7.
    • Eevee: Render alpha blended objects when rendering probes 40207d656b.
    • Eevee/GPencil: Fix depth reading after render a74041c96c.
    • Fix T64123 Eevee: Reflections Not Visible On Alpha Clip Materials 574e790340.
    • Fix T64510 Armature: Empty Not Visible as Bone custom shape 846056de6b.
    • Fix T64536 Eevee: Reflection texco no longer works 94370e23e9.
    • Fix T65017 Eevee: Render error if a SSS node is unconnected f962c701fe.
    • Fix T65049 Crash cause by NULL geom pointer 8f4b7083d3.
    • Fix T65066 Armature and bone selection is broken on macOS 4ad9d93fec.
    • Fix T65226 Crash on entering in Edit mode with ASAN build 433c2d1dea.
    • Fix T65319 Crash when selecting vertices in edit mode fc336f973d.
    • GPencil: Remove uneeded storage->unit_matrix 32a2bfddcb.
    • GPU: Enforce Uniform buffer alignment to 16bytes 092962cf72.
    • GPU: Remove GPU_INDEX_U8 77f5210f22.
    • Selection: Remove armature bone filters 8a4a05ae85.
    • Wireframe: Make wireframe's Xray slider default to 0 8cfd46a5b0.
  • 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 e5349f14eb.
    • DRW: Add and use DRW_shgroup_uniform_vec2_copy 72a5e3f61a.
    • DRW: Change Procedural function to use a GPUBatch 754ecd61aa.
    • DRW: Fix threading hazard when rendering and using auto depth ed3f05aca9.
    • DRW: Make fullscreen vertex shader position and uv without attributes 89673f0974.
    • DRW: Make Instance count not a pointer b27492d078.
    • DRW: Move ModelMatrix declaration to common_view_lib 20421ef952.
    • DRW: Refactor: Use DRWCall to accumulate per instance attributes 8bc8a62c57.
    • DRW: Remove ModelViewMatrix and ModelViewMatrixInverse 642c8010b2.
    • DRW: Remove pointers to materials ad0e95688d.
    • Eevee / Workbench: Fix hair normals 0c4ce8e55e.
    • Eevee: Add per material option to cull backfaces 0819013eb4.
    • Eevee: Fix Auto Tangent not working if active UV layer is greater than 3 6bb7eb1706.
    • Eevee: Fix volumetric shaders compilation error 987c6da6c0.
    • Eevee: Make planar downsampling not use instance drawing cf8109d2aa.
    • Eevee: Remove custom volumetric matrix 2bb788d4cd.
    • Eevee: Remove the Subsurface Render checkbox b526221315.
    • Eevee: Remove the Volumetric Render checkbox 52669dda80.
    • Eevee: Replace DRW_shgroup_empty_tri_batch_create by procedural calls 8406fabc87.
    • Eevee: Use dummy texture for GTAO when not enabled 60a4342557.
    • Fix Shader compilation error on MacOS & some other platform/driver 8437519d02.
    • Fix T64455 Texture extension mode 'clip' defaults to 'extend' 2f6c4e5bb4.
    • Fix T64551 Crash on leaving local view on the shading tab e9b282617a.
    • Fix T64574 Weird shadow mesh glitches in viewport 9bb42de828 8950aa2615.
    • Fix T64601 Error division by zero in GPUVertexFormat 3db428406f.
    • Fix zfighting from edit mode face overlays 37f87ae81b.
    • GPU: Add GPU_vertbuf_discard and GPU_BATCH_UNUSED 20d9cd3a1f.
    • GPU: Fixup and add assert to GPU_VERT_ATTR_NAMES_BUF_LEN bf45a46f81.
    • GPU: Move Material index to nodetree evaluation 2d28df783a.
    • GPU: Remove ModelViewMatrix and ModelViewMatrixInverse usage b13e0568d3.
    • GPUVertexFormat: Reduce size of structs 016fc7f0c2.
    • Mesh Batch Cache: Fix use of uninitialized variable 201ebc78e8.

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 d2520511d2.
    • BLI_memblock: New memory allocator 45caba3733 5f95a732cb.
    • DRW: Add DRW_duplidata_get to create fast path for duplis b6b3a57c22.
    • DRW: Change function orders to improve CPU cache efficiency 0b88cd5032.
    • DRW: Change Procedural function to use a GPUBatch 3453e698c8.
    • DRW: Copy matrix in case of ModelMatrixInverse being used e053f6b1d8.
    • DRW: Fix threading hazard when rendering and using auto depth 626016d235.
    • DRW: Make batch validation run first during iteration 0030e4da70.
    • DRW: Make Instance count not a pointer 551b178149.
    • DRW: Move all batch request functions to own header 05b0f52aa7.
    • DRW: Refactor: Use DRWCall to accumulate per instance attributes ba9811d9ce.
    • DRW: Remove View dependant Matrices 1d833c8e5e 0d8ab0eac6 0d8ab0eac6 e2d04229c3 f2f62b184c.
    • DRW: Remove uneeded calls to drw_viewport_engine_data_ensure when iterating ac2e23c739.
    • DRW: Speedup: Don't call GPU_shader_uniform_vector if not needed 9fea65a93d.
    • DRW: Speedup: Only do batch cache request and validation once for duplis 8d3e2ffa07.
    • Eevee: Fix Tangent vectors using NormalMatrix and make them world space 7ec7888ff3.
    • Eevee: Make planar downsampling not use instance drawing 817fc4297a.
    • Eevee: Remove uneeded normalization bb41626ab3.
    • Eevee: Replace DRW_shgroup_empty_tri_batch_create by procedural calls 88d77ffda8.
    • Eevee: Update matrices operations to not use combined matrices a298dde5d7.
    • Fix Crash with armature using custom shapes 895c41ec5d.
    • Fix T64137 Empty Images flickering graphics when "Auto Depth" is enabled de9d846353.
    • Fix T64158 Eevee: Mixed SSS shader becomes brighter and brighter 1a99b6fc7e.
    • Fix T64284 Mirrored Instances have flipped normals/face orientation c0b8d071a7.
    • Fix T64296 Z-axis overlay vanishes at scene origin in 3D Viewport a951aa5f62.
    • Fix T64329 Crash when switching to Texture Paint 209c01a6ba.
    • Fix T64363 Eevee: Texture coordinates node turns material color to pink f877022956.
    • Fix T64366 DRW: Crash opening Mr Elephant scene since recent commit c74e9273a9.
    • Fix T64384 Crash when switching to wireframe on tree_creature blend 54ec0559c8.
    • Fix T64399 Crash when trying to enter edit mode on instanced objects 7a3833ed23.
    • Fix T64420 Weight Paint colours not visible 1456b41306.
    • Fix T64464 App crashes when navigating between UV Editor and Viewport 3cac530ba6.
    • GPencil: Use common_view_lib.glsl 7f87e6e18f.
    • GPU: Add GPU_vertbuf_discard and GPU_BATCH_UNUSED 0fb7ccc666.
    • GPU: Move Material index to nodetree evaluation 83058ddda4.
    • GPU: Refactor some shader for a bit more efficiency 9489fea07b.
    • GPU: Remove GPU_INVERSE_NORMAL_MATRIX 7e380fd46a.
    • GPU: Remove ModelViewMatrix and ModelViewMatrixInverse usage 02e590dce7.
    • GPUViewport: Fix possible hash colision with enabled engines 1ae2385106.
    • Mesh Batch Cache: Speedup: Only alloc gpu_attrs if needed and don't clear bb4b6cddcb.
    • Mesh Batch Cache: Speedup: Use flags to early remove unecessary checks 7bfe70f2ba.
    • Object Overlay: Add dupli fast path 6df7946f73.
    • Overlay Mode: Use common_view_lib 24aeb479be.
    • Overlay: Remove use of NormalMatrix c9537ee5c3.
    • Overlays: Use common_view_lib.glsl 632e0725d2.
    • Wireframe: Create dupli fast path using DRW_duplidata_get 9bfdc4826a.
    • Wireframe: Refactor vertex shader to use less matrices 8c5c02932f.
    • Workbench: Use common_view_lib and remove NormalMatrix usage 733811330c 6006f86e07.

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 e8daa61570.
    • DRW: Batch Cache: Add Loop normals calculation flag and cleanup style 413ffd4606.
    • DRW: Draw checkerboard alpha pattern for Cycles 47717060af.
    • DRW: Improve edit mode selection time when using auto-smooth c7767f1bcf.
    • DRW: Speedup: Improve time to validate batch cache 88e20c663c.
    • Eevee: Add support for alpha background in viewport b581f19292.
    • Eevee: Fix crash when rendering due to recent lookdev refactor a72a831570.
    • Eevee: Lookdev: Cleanup implementation & support for Bloom and TAA e66629c128.
    • Fix T63393 Eevee: Specular Shader's Clear Coat does not function 2445d5abc2.
    • Fix T63435 Eevee: Incorrect fresnel and normals for hair strands 7f366c048a.
    • Fix T64009 Eevee: Normal Maps not working 782917648f.
    • Fix T63997 Weird z-fight during weight paint 95e052f830.
    • Sculpt: Refactor draw manager sculpt drawing mechanism b2f1a65874.

Week 120 : 22nd - 28th Apr

  • Info

Still focused on bug fixing.

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

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 223f7e79f9.
    • DRW: Expose VBO garbage collection timings 3368df4ab6.
    • DRW: Make shaded batch validation more correct 973e64cf9c.
    • Edit Mode: Change face mode edges display 6c83c92862.
    • Edit Mode: Make edit edges black by default bc8b884e53.
    • Edit Mode: Reduce Selected face alpha 4c4adeaa65.
    • Edit Mode: Rework display to differentiate selection modes 1a4b60c30d.
    • Fix T63284: Eevee: Crash when subsurface pass is enabled 10bf1d9ac1.
    • Fix T63377: "Principled Volume" node not working anymore in EEVEE 8d3af588a2.

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 af3f4f29e4.
    • DRW: Mesh Batch Cache: Fix error in loop custom data layer checking c6de149ee7.
    • DRW: Speedup: Fix hotspot in DRW_mesh_batch_cache_get_surface_shaded f12040e088.
    • DRW: Speedup: Replace bound tex/ubo tracking array by bitfields fefc9c95e4.
    • Eevee: Add python property update for render settings 3ab3f893a9.
    • Fix T61035 Draw manager crash opening file with curves e559074c4e.
    • Fix T61870 Eevee: Object's go completely black if they have a normal map ef91df608a.
    • Fix T62892 Eevee: HDRI lightning glitch f0d6879f5c.
    • Fix T63108 Eevee: Wrong Reflection plane matrix if camera view is not centered b26164ded5.
    • Fix T63198 Eevee: Indirect lighting settings arent not updating in Lookdev c2f3ba64ce.
    • Fix T63278 Eevee: LookDev: Volumetric on even if Scene World is off 9fdc16e204.

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 ec0eeb918b.
    • Edit Mesh: Fix interpolation of gradient on edit edges 51f8e51d78.
    • Eevee: Fix reflection plane weird behavior when comming from lookdev mode 780219f868.
    • Eevee: Implement Texture coordinate from object dec9c7d87e.
    • Eevee: Material: Decouple transparent shadows from blend mode d6747f310f.
    • Eevee: Modify tooltip about transparent shadow 2add370096.
    • Eevee: Render: Reduce debug print amount to not decrease perf of rendering in background mode on windows7cbd1b0c98.
    • Fix T62260 Edit Mesh: edges display bug on big geometries when looked up close 3aeb44cd79.
    • Fix T58387 Eevee: Voronoi(Cells) does not work on (amd + windows) d027df3add.
    • Fix T61129 Eevee: Alpha texture shadow bug f0a20ae1c9.
    • Fix T62178 Eevee: Texture Box mapping not matching Cycles if object is scaled 42dd888b98.
    • Fix T62566 Eevee: Cubemap doesn't bake from current frame of animation f9a69a481e.
    • Fix T62680 Eevee: Mirrored objects have flipped binormal vectors in LookDev afaa832a85.
    • Fix T62856 Eevee: Toon BSDF and viewport/UI oddities e59a2fcc35.
    • Fix T62862 Eevee: Glitchy reflections in ortographic view 6d1921dd81.
    • Fix T62930 Eevee: Wireframe input node not working with certain compiler 420f30efe7.
    • Fix T62997 Eevee: visual artifacts during irradiance volume baking 96d200775a.
    • Fix T63115 Crash upon switching to textured/rendered mode 024d02256e.
    • GPU: Python: Fix color difference when rendering to gpu_py_offscreen 4d71b655ec.
    • GPU: State: Replace GL_BLEND by GPU_blend c602ec74fd.

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 53cd37d510 72c323d50c.
    • GPU: Replace some glEnable/glDisable but GPU_state calls ed9af18c76.
    • GPU: Remove unused and deprecated GPU_line_stipple() ee5e7a006e.
    • Edit Mesh: Rework "in front" + "hidden wire" drawing d057dea7ae.
    • Edit Mesh: Draw loose edges in edit mesh mode if there is a modifier stack f71e8617e0.
    • Eevee: Add small optimisation for Curve Mapping nodes c49a70bcd1.
    • Eevee: Fix tangent vector not normalized before interpolation. 8b00712b55.
    • Eevee: Normalize Tangents after transform to world space 27109fd209.
    • Eevee: Opti: Don't consider lights that have no power 839fe4e01c.
    • Fix T57617 Volumetrics doesn't work on the Orthographic Camera 7b3e114975.
    • Fix T58392 Texture limit size not working 6c0bd89047.
    • Fix T58550 Dragged in images dont overlap properly c5fc861172.
    • Fix T58748 Mirror modifier: edges/verts invisible unless face is present 1cf592e62e.
    • Fix T59719 Bake Indirect Lighting doesn't update env map reflection 603a37fa89.
    • Fix T60190 Z-fighting with (Culled) Backface f391362f8c.
    • Fix T60684 Fourth and subsequent vertex color / UV layers displayed black bd80393995.
    • Fix T60969 Eevee: Volumetrics broken with dupli objects dcbc46dacb.
    • Fix T61104 Compositing two scenes with different output scales crashes ce09b93955.
    • Fix T61326 "In Front" option not working on edit curves bff472d2ff.
    • Fix T61475 Particle edit does not render children if path step > 7 e72dc667c4.
    • Fix T62097 Bone transparancy not enabled when Xray enabled 16087eb911.
    • Fix T62839 Eevee: object scale changes normal map output in eevee f6a6770f06.
    • Fix T62845 Eevee: VSE preview crash when setting rendered (EEVEE/Workbench) 0a89c3954f.
    • Fix T62869 Transparent background not working in Xray Mode / Wireframe e77dc3e7ff.
    • Fix T62873 GPUShader: compile error (when clipping in viewport) 13832988ad.
    • Fix T62884 Missing control point in unselected mask handles 0f8da4f014.

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 729a1ab6a0.
    • DRW: Fix missing state reset before draw pass ccb4484ea3.
    • Eevee: Fix black mesh when tangent is not present 7fb7d20c19.
    • Eevee: Fix tangent being renormalized after interpolation 1d6009d7aa.
    • Eevee: Planar Ref.: Invert view matrix to remove triangle front face flip aaeca5d872.
    • Fix T61857: Eevee: DOF not working if the camera is in orthographic mode fe40e184a6 66225e84cf.
    • Fix T55620: Eevee: Artifacts with SSR and planar reflection 795bddf2bd.
    • Fix T58793: Eevee: Volumetric Clouds in Eevee not working | MacOs 3ab879ed5a.
    • Fix T58610: Eevee: camera motion blur renders only one viewport sample f7d415ab42.
    • Fix T58694: Eevee: Wrong result when using normal map and face is flipped 81531d452c.
    • Fix T59448: Eevee: broken Area Light shadows for square and rectange shape 3952fd199a.
    • Fix T59501: Eevee: doesn't use integer node sockets bf9904ec80.
    • Fix T60005: Eevee: Volume material doen't write alpha 3146a07e3e.
    • Fix T60170: Eevee: smoke color does not apply permanently d0fb0d0a9d.
    • Fix T60802: Eevee: No diffuse when using Clearcoat + Add shader 31fba57677.
    • Fix T60902: Eevee: Environment texture partially visible on transp. render 41cb565880.
    • Fix T60803: Eevee: Artifacts with SSR + Reflection Plane + 0 roughness 3600bb79d0.
    • Fix T61380: Eevee: Geometry normal node incorrect for backfacing faces in Eevee f16bdf1075.
    • Fix T62621: Eevee: object scale changes tangent node output in Eevee 86646dab7c.
    • Fix T59943: Workbench: Color banding present in Workbench render but not in viewport 99fe774298.
    • Fix T61526: Viewport: hair doesn't render in workbench but does with openGL d438120fe3.
    • Fix T62279: DRW: Rendering simple geometry corrupts with greasepencil layer e28f0f179d.
    • Fix T62555: UI: Viewport borders flicker when splitting said viewport dbfbd6b904.
    • Particle: Remove Billboard Particle code efdde88dfc.
    • View3D: Fix object without bounds displaying bounding boxes 9f4ec02bb4 0142c825b5.
  • 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 6867821c4a af72fc7555 81283b1c81.
    • Eevee: Update LTC code a808b58e07.
    • GPU Extension: Add OS defines 9c43520010.
    • Fix T58890: Sculpt Mode not updating in LookDev or Rendered d77b7b097d.
    • Fix T59140: Loose edges of final mesh does not display in edit mode 81ae7773e7.
    • Fix T59877: EEVEE: Object Info node random value does not work with Duplis dabf593163.
    • Fix T60171: Hair Particles Not Displaying in Viewport 9ad156374f fbfdfcb947.
    • Fix T61778: Crash when adding material slot to object c94db5d1c7.
    • Fix T62066: Seg Fault Baking Light Cache with "--background" Flag 97b1739cf1.
    • Fix T62220: Solid shading mode - Shadow glitch 9d3eec785b.
    • Fix T62259: EEVEE: RGB Curves behave differently in Cycles and Eevee e1a62fa1a6.
    • Fix T62262: Light "Show Cone" & stereoscopy volumes broken by MSAA 61039bf713.
    • Fix T62355: Running blender 2.80 headless broken in recent builds da73f56917.
    • GPUMaterial: Make Shader Output nodes inside nodegroups work d1a744173e.
    • Preferences: Add option to disable edit-mode wire Antialiasing 89db684d82.
  • 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 fe5d26807b.
    • Armature: Make selection only work on outlines in wireframe mode 495216d2b8.
    • Armature: Remove the Transparent Bone overlay option 28ccc0fa2f.
    • Hair Particle: Fix issue on OSX due to hardware accelerated subdivision 680c7209ec.
    • DRW: Fix matflag not being updated after first drawcall 10afa74e82.
    • Fix T61801: Wireframes on curves not working 753e73009f.
    • Fix T61878: Selection does not allways work in wireframe mode 4b916612e1.
    • Fix T62021: Wireframe input node doesn't work properly d7d180bd3d.
    • Fix T62040: Irradiance Volume broken cd897c57f8.
    • Fix T62047: New wireframes missing fresnel effect 6194aa5ce9.
    • Fix T62075: Edges generated by solidify modifier does not appear faec3655d8.
    • Fix T62090: Eevee shader compilation: undefined variable "att1_is_srgb" 66228d4362.
    • Preferences: Remove warning concerning selection in edit mode with MSAA 5397f1e45d.
  • 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 7372058649.
    • Fix T61837: Assert in Eevee multiresolution modfier in sculpt mode 0ca623362d.
    • Sculpt Overlay: Fix mask drawn as flat shaded when smooth shading enabled 1381a4a948.
    • GPUBuffers: Fix fast navigate in on smoooth multires grid 2f8d8b5e5e.
    • GPUBuffers: Fix/cleanup multires implementation e35b7e7326.
  • 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 11b8d8a838.
    • Fix T61374 : vertex not visible/selectable if it is at objects origin d07cde8de8.
    • Fix: Eevee SSS not rendering as expected 23c14a0bba.
    • GPU: Change multisample resolve shader to output min depth 9c49c2ef0c.
    • Overlay: Remove extra contour drawing in wireframe mode d62f8a3176.
    • Sculpt Draw: Add support for wireframe geometry 9ab99ff26b.
    • Wireframe: Add depth offset to prevent zfighting of wireframe overlay 600da00a94.
    • Wireframe: Add workaround for osx wide wires 2cccffd20b.
    • Wireframe: Fix Artifacts with MSAA 7a8a2211d1.
    • Wireframe: Fix selection broken since recent wireframe refactor 28901820a4.
    • Wireframe: Refactor to use GL_LINES instead of triangles with alpha blend e49d955541.
  • 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.

  • General development
    • Edit Mode: Draw Vertices after edges d2afa51ddc.
    • Edit Mesh: Only draw vertices once a04dd15193.
    • Edit Mode: Reduce number of edges drawn ea30767997.
    • Edit Mode: Fix edge partially displayed as selected with modifier preview 7584ef85bf.
    • Edit Mode: Make active face hint part of the face color aa7b013bd5.
    • Edit Mesh: Rework new implementation and use geometry shader to draw lines a710af2b25 9b774dfa3b.
    • Edit Mode: Increase depth Bias for vertices 7a2a08e0cd.
    • Edit Mesh: Add workaround for system that does not support wide lines 773f3428cf 5df56668d3.
    • Edit Mesh: Refactor Edit cage drawing to use old style drawing 86193d25db a131514d0f 112cf6eadf a13fb30917.
    • UVEdit: Add function variants based on ToolSettings f3f2602c88.
    • Fix T57342: Crash on render with workbench render engine via command line fea5e1dc3a.
  • 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 d16e4d077d.
    • Workbench: Make Material transparency part of the rgba color picker 1a61c209a0.
    • Workbench: Opti: Only request OIT buffers if needed 43150b02a0.
    • Workbench: Support transparency from object color alpha 2cc69a5e20.
    • Workbench: Add "Shadow" factor to Xray 8134f3f0a6.
    • Workbench: Add transparency support for materials bc99f4903c.
    • Object Mode: Fix reading past buffer end when drawing camera d88492d4ad.
  • 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 314ea1b1c7.
    • Workbench: Depth Of Field: Add toggle option in shading popover c1814d593d.
    • Workbench: Depth Of Field: Cleanups 3223644d14.
    • Workbench: Depth Of Field: Optimisation 71e3002824.
    • Workbench: Depth Of Field: Initial Commit 3f6e14e667.
    • T60745: GPU texture alloc failed when opening Preference Windows aae2bf7735.
    • DRW: Fix corner indices order in clipping plane setup 14b5668c60.
    • GPUShader: Add GPU_VERTEX/FRAGMENT/GEOMETRY_SHADER defines ba4de7f1a5.
  • 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 d5b4d71ee7.
    • DRW: Use name buffer to request uniform location before drawing. e3b3b32076.
    • Edit Mesh: Improve selected double vertices visibility ee0c2e9b87.
    • GPUInterface: Add builtin check in uniform location request. 6dccc7cdab.
    • Object Mode: Outlines: Add support for thicker outline 209afa28c6.
    • Object Mode: Grid: Improve precision and reduce code complexity b5bc2158a0.
    • EEVEE: Physically based defaults for Bloom and Shutter 16fac2149b.
    • Fix T59482: Creating 2 Particle systems breaks the app 21fedfbca0.
    • Fix T60332: Lattice objects do not display properly in Edit mode dd5602a1e5.
    • Fix T60476: Loose vertices only partially drawn 6f9e3e9d33.
    • Fix T60545: Buffer overflow in selection batch creation dc7e492989.
  • 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 00d2237d2a.
    • Fix T59990: Crash when entering edit mode with skin modifier enabled 3a9909f38e.
    • BMesh: Add BM_face_calc_area_uv 74260a2b6d.
    • DRW: Fix texture paint crashing if object has no material slot bda2cd8ba5.
    • EditUV: Only clear data VBO when selection changes 9f51fc656e.
    • GPUMaterial: Cleanup / optimization 3bc87227f5.
    • GPUShader: Add selection id shader 9d19ff9076.
    • GPUShader: Cleanup Unused shaders 1459a70489.
    • Mesh Batch Cache: Put context evaluation out of batch cache 943852c0dc.
    • Mesh Selection: Port to batch cache request 55ddb21b7c.
    • Mesh Selection: Make Vertices not occluded by edges 44e3fc66c7.
    • UVEdit: Port batches to batch request 5f3fdee53a 621a6d4a5d.
    • UVEdit: Port texpaint_loop_wire to batch request 1c91b6ee29.
    • WM: Use draw manager to draw UV image editor spaces 86ec304ffa.
    • Workbench: Support node texture "closest" interpolation option 9177bb33f6.
    • Texture Paint: Add filtering option for texture paint overlay b98e6743dc.
  • Next week

I will still focus on bug fixing.

Week 104 : 30th - 6th Jan

  • Info