User:Hypersomniac/Foundation/2019

Week 154 : 30th - 22nd December
Vacation.
 * Info

Week 153 : 16th - 22nd December


This week I focused on the GPencil FX refactoring.
 * Info

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.
 * GPencil: Refactor: Implement rounded caps.
 * GPencil: Refactor: Make light power match cycles and EEVEE.
 * GPencil: Refactor: Use more correct depth merge approximation for 2D object.
 * GPencil: Refactor: Use normal approximation for lighting.
 * GPencil: Refactor: Blur Fx: Implement DoF option and fix radius world size.
 * GPencil: Refactor: First step to get rid of sRGB.
 * GPencil: Refactor: Add world ambient lighting.
 * GPencil: Refactor: Implement "Use Lights" toggle.
 * GPencil: Refactor: Add other light types.
 * GPencil: Refactor: Add new basic light system.
 * GPencil: Refactor: Add Swirl FX.
 * GPencil: Refactor: Add Wave FX.
 * GPencil: Refactor: Add Flip FX.
 * GPencil: Refactor: Add Rim FX.
 * GPencil: Refactor: Add Colorize FX.
 * GPencil: Refactor: Add Shadow Effect.
 * GPencil: Refactor: Add Glow effect.
 * GPencil: Refactor: Add Pixelize effect.
 * GPencil: Refactor: FX: make the Blur not dependant on sampling parameter.
 * GPencil: Refactor: Add invert masking.
 * GPencil: Refactor: Base implementation of VFX for gpencil.

Continue Grease Pencil refactor.
 * Next week

Week 152 : 9th - 15th December


Refactor of the grease pencil is going nicely.
 * Info

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.
 * GPencil: Refactor: Add Top to bottom layer masking using stencil.
 * GPencil: Refactor: Change Mask Behavior.
 * GPencil: Refactor: Speedup: Only blend pixels rendered in the layer.
 * GPencil: Refactor: Implement Layer Masking.
 * GPencil: Refactor: Add depth merge pass.
 * GPencil: Refactor: Add depth test in the fragment shader.
 * GPencil: Refactor: Add support for layer blending.
 * GPencil: Refactor: Add offscreen compositing foundation.
 * GPencil: Refactor: Implement Object sorting.
 * GPencil: Refactor: Implement Stroke self overlap option.
 * GPencil: Refactor: Implement layer tint.
 * GPencil: Refactor: Add Dots & Square drawing type.
 * GPencil: Refactor: Improve stroke color mixing support.
 * GPencil: Refactor: Add UV / Texture support to strokes.
 * GPencil: Refactor: Add basic vertex color support.
 * GPencil: Refactor: Implement Checker Fill type (later removed).
 * GPencil: Refactor: Add support for fill textures.
 * GPencil: Refactor: Put fill uvs into bGPDspoint.
 * GPencil: Refactor: Add basic Material color support via UBO.
 * DRW: Add DRW_shgroup_stencil_set to set all stencil test values.
 * DRW: Add subtract blend logic.
 * GPU: Framebuffer: Add GPU_framebuffer_multi_clear.
 * BLI_memblock: Fix BLI_memblock_destroy not freeing all elements.

Continue Grease Pencil refactor.
 * Next week

Week 151 : 2nd - 8th December
I fixed the major issues of the new Antialiasing system for overlays and fixed some bugs related to the overlay refactor.
 * Info

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  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.
 * Overlays: Armature: Fix Crash entering armature edit mode.
 * Overlays: Armature: Use Wire AA on custom bone loose edges.
 * Overlays: Cleanup & enable line AA on in front passes.
 * Overlays: Fix bone outline antialiasing.
 * Overlays: Fix crash in select mode with Lock Object Modes off.
 * Overlays: Fix dashed curves and loose edges.
 * Overlays: Fix T72147 Blender crashes when Lock Object Modes off.
 * Overlays: Fix unreported crash on startup caused by new shader.
 * Overlays: Fix vertex discard issue on Nvidia hardware.
 * Overlays: LightProbe: Simplify drawing of irradiance grid data.
 * Overlays: Outlines: Simplify drawing code.
 * Overlays: Outlines: Bypass antialias path when not needed.
 * Overlays: Outlines: Fix occluded alpha being too low.
 * Overlays: Simplify outline rendering by using the antialiasing pass.
 * Overlays: Wireframe: Fix Edges not being culled correctly.
 * Overlays: Wireframe: Fix missing loose edges in object mode.
 * Overlays: Wireframe: Improve Z-fighting / missing information stippling.
 * Workbench: Fix missing Clipping state when usint Alt+B clipping.
 * GPencil: Refactor: Add back basic fill drawing.
 * GPencil: Refactor: Add new logic to create batches and store draw passes.
 * GPencil: Refactor: Add quick 3D/2D stroke ordering for testing.
 * GPencil: Refactor: Add thickness support.
 * GPencil: Refactor: Draw gpencil strokes using instanced quad.
 * GPencil: Refactor: Fix fill stroke indices.
 * GPencil: Refactor: Fix miter of endpoints.
 * GPencil: Refactor: Fix stroke end segment not drawn because of 180° angle.
 * GPencil: Refactor: Implement Miter corner logic.
 * GPencil: Refactor: Quick implementation of object matrices.
 * GPencil: Refactor: Rename variables to match naming convention.
 * GPencil: Refactor: Use iterator to populate draw passes.
 * GPencil: Use debug_value of 50 for testing new refactor.
 * Draw Manager: Add new DRW_shgroup_call_instance_range.
 * GPUVertFormat: Add GPU_vertformat_multiload_enable.

Continue Grease Pencil refactor.
 * Next week

Week 150 : 25th - 1st December


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.
 * Info

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.


 * General development
 * Overlay Engine: Change Antialiasing implementation to a novel method!.
 * Overlay Engine: Fix Sculpt Mask overlay.
 * Overlay Engine: Add SMAA to replace FXAA.
 * Overlay Engine: Fix loose wire showing after edit mode and not showing in...
 * Overlay Engine: Fix issue with facing overlay.
 * Overlay Engine: Fix/Improve Temporal AntiAliasing.
 * Overlay Engine: Fix crash when enabling pose bone selection overlay.
 * Overlay Engine: Wireframe: Fix wireframe overlay on top of infront objects.
 * Overlay Engine: Fix armature shape always transparent.
 * Overlay Engine: Fix Paint overlays disapearing because of TAA.
 * Overlay Engine: Fix Armature bone toggle.
 * Overlay Engine: Make overlay parameters reset TAA.
 * Overlay Engine: Update overlays on ID update.
 * Edit Armature: Tag armature after any operator to invalidate viewport.
 * Fix Wireframe issue with infront objects.
 * Fix infront selectability of solid objects.
 * Fix In Front object selectability.
 * Fix FXAA alpha issue..

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

Week 149 : 18th - 24th November
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.
 * Info


 * General development
 * BLF: Remove use of geometry shader.
 * Cleanup: DRW: Remove Hack of skinroot rendering.
 * Cleanup: DRW: Remove old unused code.
 * Cleanup: DRW: Remove unused GPUBatches from Shape cache.
 * Cleanup: GPU: Remove unused shaders.
 * Cleanup: Make empty image use quad batch instead of specific batch.
 * Cleanup: Port back the custom shape ghash to revert perf regression.
 * Cleanup: Remove more unused files.
 * Cleanup: Remove older draw engine from draw module.
 * Cleanup: Remove stipple start position duplication.
 * DRW: Fix an issue with instanced rendering and base_instance.
 * GPU: Batch: Add second instance buffer.
 * GPU: Remove The use of geom shader for dashed lines.
 * Overlay Engine: Add FXAA as base Antialiasing.
 * Overlay Engine: Add Temporal Anti Aliasing.
 * Overlay Engine: Armature: Bone selection overlay.
 * Overlay Engine: Edit Mesh: Port Occlusion detection to shader.
 * Overlay Engine: Edit Mode: Change Normal overlays.
 * Overlay Engine: Fix background image and sort empty images by Z depth.
 * Overlay Engine: Fix overlay toggle not working.
 * Overlay Engine: Fix selection outline antialiasing.
 * Overlay Engine: Improve In Front pass ordering.
 * Overlay Engine: Loose Edges/Verts.
 * Overlay Engine: Only alloc extra depth texture if really needed.
 * Overlay Engine: Particles.
 * Overlay Engine: Sculpt Mask.
 * Overlay Engine: Wireframe: Put color evaluation in the shader.
 * Overlay Mode: Fix infront depth sorting.

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.
 * Next week

Week 148 : 11th - 17th November
The unification is almost done. It will be submitted to review in the following days.
 * Info

All the developement of the unification happens in the  branch.
 * General development
 * Overlay Engine: Paint Modes.
 * Overlay Engine: Lattice.
 * Overlay Engine: MetaBall.
 * Overlay Engine: Edit Text.
 * Overlay Engine: Edit Curve / Surface.
 * Overlay Engine: Fix warnings.
 * Overlay Engine: Motion Path.
 * Overlay Engine: Camera Background Images.
 * Overlay Engine: Image Empties.
 * Overlay Engine: Armatures.

Leverage the unification to remove some old standing drawing issue.
 * Next week

Week 147 : 4th - 10th November
I worked on unifying the Overlay engines into one meta engine as described here. 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).
 * Info

All the developement of the unification happens in the  branch.
 * General development

Finish the overlay unification.
 * Next week

Week 146 : 28th - 3rd November
Finished recovering from illness. Started Overlay's unification (See ) and did some long standing bug fixes.
 * Info


 * General development
 * Fix T69468 EEVEE: Collections Holdout Button in Outliner Is Ignored.
 * Fix T70091 EEVEE: volumetric broken, not refresh.
 * Fix T71050 EEVEE: Light Path Node broken in 2.81.
 * Fix T71062 EEVEE: Holdout shader is broken in 2.81.

Continue Overlay's unification.
 * Next week

Week 145 : 21th - 27th October
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.
 * Info

Week 144 : 14th - 20th October
Fixing bugs and regressions.
 * Info


 * General development
 * Fix T70678 Workbench: Smoke Sim display has incorrect offset.
 * Fix T70811 EEVEE: Alpha clip/hashed cause wrong alpha values.
 * Fix assert and memleak in recent Skin Root Display patch.
 * Fix T70249 EEVEE: Light bleeding on SSS translucency.
 * Fix T68380 Skin modifier root not displayed.
 * Fix T70543 Rigid Body Collision Shape Not Displayed In Viewport.

Fixing bugs.
 * Next week

Week 143 : 7th - 13th October
Fixing bugs and regressions.
 * Info


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

Fixing bugs.
 * Next week

Week 142 : 30th - 06th October
Fixing bugs and regressions.
 * Info


 * General development
 * Fix T70463 GPU: Very Slow Workbench/Eevee Performance.
 * Fix T70466 Rendering error when drawing multi-material meshes.
 * Fix T70331 Node group passthrough is broken.
 * Workaround for NVidia broken driver.
 * Fix T70206 Texture Paint: UV shadow doesnt show up.
 * Fix T70414 EEVEE: Crash with 2 viewports, UV edit and sync selection.
 * Fix T70325 EEVEE: Performance regression with large nodetrees.

Fixing bugs.
 * Next week

Week 141 : 23rd - 29th September
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.
 * Info


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

Focus on bugfixing.
 * Next week

Week 140 : 16th - 22nd September
I had to take some more days to recover from illness.
 * Info

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.
 * Fix T69971 EEVEE: Bump does not work using a UVMap node as input.
 * DRW: Refactor to support draw call batching.

Focus on bugfixing.
 * Next week

Week 139 : 9th - 15th September
I was ill this week and still am a little, it was hard to work proficiently.
 * Info

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.


 * General development
 * Revert "DRW: Refactor to support draw call batching".
 * DRW: Refactor to support draw call batching.
 * EEVEE: Volume: Fix error in fallback integration algo.
 * EEVEE: Volume: Speedup: Use Image load store extension.

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

Week 138 : 2nd - 8th September
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.
 * Info

Finish merging branches and implement volumetric optimization.
 * Next Week

Week 137 : 26th - 1st September


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

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 ;

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.
 * Fix T69051 Vertex Paint: Selection not show in vertex select mode..

I'll try to make all my branches merge to master and start looking at
 * Next Week

Week 136 : 19th - 25th August


I looked into improving the EEVEE regression tests and improved bump support.
 * Info


 * General development
 * Fix T68954 UVEdit: Auto Smooth option conflicts with uvs display.
 * Fix T68826 Eevee: Multi-Mat not working if switching from Solid shading.
 * GPU: Fix Element index range calculation.
 * Fix T68837 Eevee: Fix "GPU failed to find function math_max" message.

I'll focus on which is a main target for 2.81.
 * Next Week

Week 135 : 12th - 18th August


The batch cache refactor have been merged to master.
 * Info

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.
 * Eevee: Add support for the holdout node.
 * Eevee: Improve Transparent BSDF behavior.
 * Eevee: Remove Additive & Multiply Blend mode.
 * Eevee: Fix background alpha regression.
 * Eevee: Fix tangent map node not using the right UVMap.
 * Eevee: Fix Regression when using ssr and default shader.
 * Fix T68537 Eevee: Modulo node behaves unexpectedly/inconsistently.
 * Fix T68689 Eevee: Fix infinite recursion cause by versioning code.
 * Fix T68715 Object Mode: Hidden polygon Edit mode are hidden in Object mode.
 * Fix Unreported crash when opening linked material using nodegroups.
 * GPU: Vertex Format: Add function for safer GLSL attrib name.
 * GPU: Vertex Format: Increase number of byte per attribute name.
 * Mesh Batch Cache: Refactor + Multithread.
 * Mesh Batch Cache: Split UV an tangent into 2 distinct VBOs.

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

Week 134 : 5th - 11th August
I made plans for 2.81 release and further. The task about the features can be found [|here].
 * Info

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.

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

Week 133 : 29th - 4th August
Vacation.
 * Info

Week 132 : 22nd - 28th July
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.
 * Info

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


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

Week 131 : 15th - 21th July
Fixing critical bugs for the release. I also started rewritting the mesh batch cache for better code quality and potential speedups.
 * Info


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

Week 130 : 8th - 14th July
Still fixing bugs.
 * Info


 * General development
 * Fix T61770 Multiple Hair Systems Not visible while in particle edit mode.
 * Fix T57489 Eevee: Texture coordinate object reference not working for world.
 * Fix T65850 Sculpt: Vertices not hidden if using shape keys.
 * Fix T66630 X-Ray + Subdivision surface Face select problem.
 * Fix T62580 Workbench: Shadow glitch due to degenerate threshold.
 * Fix uninitialized loop variable.
 * Eevee: Fix first sample being accumulated without SSR.
 * Fix T65761 Eevee: SSRefraction not working on first sample.
 * Fix T66573 Heap Corruption when baking to irradiance volume probe.
 * Fix T63447 Particle system: No particles after switching from hair to ....
 * Fix T63659 "Viewport render image" don't process corectly "Display As" option.
 * Fix T66008 Viewport: hidden edges are partially visible.
 * Fix T65534 Eevee don't respect active UVmap.
 * Fix T66351 Wireframe display in sculpt-mode broke when hiding parts.
 * Fix T66348 Eevee: Broken shader if using textures and shader_to_rgb node.
 * Fix T66475 Spin Modifier: Merge Vert Makes mesh disappear.
 * Fix T66470 Planar track is not adjustable.
 * Fix T62941 Subdivision Modifier Showing all face dots.
 * Fix T61129 Eevee: alpha texture shadow bug.

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

Week 129 : 1st - 7th July
Still fixing bugs.
 * Info


 * General development
 * Fix T66348 Eevee: Broken shader if using textures and shader_to_rgb node.
 * Fix T66475 Spin Modifier: Merge Vert Makes mesh disappear.
 * Fix T66470 Planar track is not adjustable.
 * Fix T62941 Subdivision Modifier Showing all face dots.
 * Fix T61129 Eevee: alpha texture shadow bug.
 * Fix T66372 Convert to mesh with subdivision breaks topology.
 * Fix T59225 Screw modifier not displayed when using single vertex.
 * Fix T66295 Collection instance duplicates don't have selection outline.
 * Fix T66322 Object with particle system have expanded selection region.
 * Fix T65468 Nurbs: Broken display when hiding control points.
 * Fix T65974 Workbench: transparency rendering broken.
 * Workbench: Combine Xray Alpha with object/material alpha ....
 * Fix T65771 Eevee: Volume Emission not working if density is zero.

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

Week 128 : 24th - 30th June
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).
 * Info

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.
 * DRW: Add DRW_STATE_BLEND_CUSTOM.
 * DRW: Fix point shaders not using gl_PointSize.
 * Eevee: Make use of dual source blending for volumetric resolve.
 * Fix T65755 Wireframe: "In Front" (X-Ray) doesn't work with wire objects.
 * Fix T65942 Eevee: Reflection plane has "show data" checked by default.
 * Fix T65951 Saving project right before rendering (Cycles) causes empty render-preview.
 * EEVEE: Add better support for displacement relinking behavior.
 * ObjectMode: Fix selection points of LightGrids.

Week 127 : 17th - 23rd June
Still in bug fixing phase.
 * Info


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

Week 126 : 10th - 16th June
I reviewed Eevee's documentation and fixed some Eevee bugs.
 * Info


 * General development
 * Edit Mode: Fix face alpha being too strong in xray mode.
 * Eevee: Fix Contact shadows with Translucent BSDF.
 * Fix T61768 Eevee Offscreen rendering.
 * Fix T64913 Eevee: shader compilation does not reset TAA.
 * Fix T65569 Eevee: Volumetrics on alphablend surf. not working in renders.
 * Fix T65647 Eevee: Contact shadows "Softness" settings darkens objects.
 * Fix T65406 Edit Mode: Edge selection is below wireframe overlay.
 * Fix T65669 Bones in Envelope Display break apart after selecting bone.

More Bugfixes.
 * Next week

Week 125 : 3rd - 9th June
A lot of Eevee bug fixes this week.
 * Info


 * General development
 * Eevee: Merge shadow map processing into one drawcall per light.
 * Fix T63701 Eevee: High Volumetric end distance darkens the image.
 * Fix T63729 Eevee: Bump does not follow normal direction.
 * Fix T64214 Eevee: Issue with Emission node and Alpha blending.
 * Fix T64742 Eevee: SSRefract broken with planar reflections.
 * Fix T65042 Eevee: Hair Info Tangent Normal not working correctly.
 * Fix T65118 Eevee: NaN when using bent normals.
 * Fix T65298 Eevee: Principled BSDF doesn't use specular with metals.
 * Fix T65378 Eevee: Glitches in ESM shadowmapping.
 * Fix T65372 Freestyle: Can't turn off line anti-aliasing in Eevee.
 * Fix T65383 UI graphics glitches on macOS with Intel HD 4000.
 * Fix T65389 Edit Mesh: Face dots are not shown in Xray mode.

More Bugfixes & Documentation review.
 * Next week

Week 124 : 27th - 2nd June
Nothing much other than bugfixes.
 * Info


 * General development
 * Cleanup: DRW: Make clipped shader use UBO clip planes.
 * Cleanup: DRW: Move WorldClipPlanes to builtin uniform.
 * Cleanup: DRW: Remove DRW_STATE_OFFSET.
 * Cleanup: DRW: Rename DRW_STATE_BLEND_* for API clarity.
 * Cleanup: EditMesh: Remove DRW_STATE_OFFSET_*.
 * Cleanup: GPU: Move program point size to GPU_state.
 * Cleanup: Paint Overlays: Remove DRW_STATE_OFFSET_*.
 * DRW: Add unit_state to avoid lots of DRWCallState duplication.
 * DRW: Fix crash when object has no bounding box.
 * DRW: Refactor to use object pointer for drawcall by default.
 * EditMeshMode: Reduce unselected face alpha.
 * Eevee: Change default shadowmap near clipping distance.
 * Eevee: Fix assert when displaying transparent film checker.
 * Eevee: Fix crash caused by visibility calculation.
 * Eevee: Fix render depth pass being negative.
 * Eevee: Fix render z-depth for orthographic camera.
 * Eevee: Fix volumetric shader if nodetree uses a bsdf node.
 * Eevee: Render alpha blended objects when rendering probes.
 * Eevee/GPencil: Fix depth reading after render.
 * Fix T64123 Eevee: Reflections Not Visible On Alpha Clip Materials.
 * Fix T64510 Armature: Empty Not Visible as Bone custom shape.
 * Fix T64536 Eevee: Reflection texco no longer works.
 * Fix T65017 Eevee: Render error if a SSS node is unconnected.
 * Fix T65049 Crash cause by NULL geom pointer.
 * Fix T65066 Armature and bone selection is broken on macOS.
 * Fix T65226 Crash on entering in Edit mode with ASAN build.
 * Fix T65319 Crash when selecting vertices in edit mode.
 * GPencil: Remove uneeded storage->unit_matrix.
 * GPU: Enforce Uniform buffer alignment to 16bytes.
 * GPU: Remove GPU_INDEX_U8.
 * Selection: Remove armature bone filters.
 * Wireframe: Make wireframe's Xray slider default to 0.

More Bugfixes.
 * Next week

Week 123 : 20th - 26th May
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.
 * Info

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


 * General development
 * BLI_memblock: Refactor for faster iteration and allocation.
 * DRW: Add DRWView to improve different view handling.
 * DRW: Remove usage of DRW_viewport_matrix_get.
 * DRW/Eevee: Fix camera texture coordinates in renders with overscans.
 * Edit Mesh: Change color behavior.
 * Eevee: Fix T64806 Missing sss_blur pass crashing indirect light bake.
 * Eevee: Fix SSS energy disapearing with alpha blended material.
 * Eevee: Lookdev: Make winmat point to negative Z.
 * GPU: Refactor GPU_batch_draw_range_ex.
 * Workbench: Change default studiolight.
 * Workbench: Change exhisting studiolight.
 * Workbench: Fix TAA logic.
 * Workbench: StudioLight: Add new centered studiolight setup.

Focus on bug fixes and performances.
 * Next week

Week 122 : 13th - 19th May
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.
 * Info


 * General development
 * BLI_memblock: Add more options.
 * DRW: Add and use DRW_shgroup_uniform_vec2_copy.
 * DRW: Change Procedural function to use a GPUBatch.
 * DRW: Fix threading hazard when rendering and using auto depth.
 * DRW: Make fullscreen vertex shader position and uv without attributes.
 * DRW: Make Instance count not a pointer.
 * DRW: Move ModelMatrix declaration to common_view_lib.
 * DRW: Refactor: Use DRWCall to accumulate per instance attributes.
 * DRW: Remove ModelViewMatrix and ModelViewMatrixInverse.
 * DRW: Remove pointers to materials.
 * Eevee / Workbench: Fix hair normals.
 * Eevee: Add per material option to cull backfaces.
 * Eevee: Fix Auto Tangent not working if active UV layer is greater than 3.
 * Eevee: Fix volumetric shaders compilation error.
 * Eevee: Make planar downsampling not use instance drawing.
 * Eevee: Remove custom volumetric matrix.
 * Eevee: Remove the Subsurface Render checkbox.
 * Eevee: Remove the Volumetric Render checkbox.
 * Eevee: Replace DRW_shgroup_empty_tri_batch_create by procedural calls.
 * Eevee: Use dummy texture for GTAO when not enabled.
 * Fix Shader compilation error on MacOS & some other platform/driver.
 * Fix T64455 Texture extension mode 'clip' defaults to 'extend'.
 * Fix T64551 Crash on leaving local view on the shading tab.
 * Fix T64574 Weird shadow mesh glitches in viewport.
 * Fix T64601 Error division by zero in GPUVertexFormat.
 * Fix zfighting from edit mode face overlays.
 * GPU: Add GPU_vertbuf_discard and GPU_BATCH_UNUSED.
 * GPU: Fixup and add assert to GPU_VERT_ATTR_NAMES_BUF_LEN.
 * GPU: Move Material index to nodetree evaluation.
 * GPU: Remove ModelViewMatrix and ModelViewMatrixInverse usage.
 * GPUVertexFormat: Reduce size of structs.
 * Mesh Batch Cache: Fix use of uninitialized variable.

Week 121 : 6th - 12th May
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.
 * Info


 * General development
 * 3D Grid: Use View UBO & small cleanup.
 * BLI_memblock: New memory allocator.
 * DRW: Add DRW_duplidata_get to create fast path for duplis.
 * DRW: Change function orders to improve CPU cache efficiency.
 * DRW: Change Procedural function to use a GPUBatch.
 * DRW: Copy matrix in case of ModelMatrixInverse being used.
 * DRW: Fix threading hazard when rendering and using auto depth.
 * DRW: Make batch validation run first during iteration.
 * DRW: Make Instance count not a pointer.
 * DRW: Move all batch request functions to own header.
 * DRW: Refactor: Use DRWCall to accumulate per instance attributes.
 * DRW: Remove View dependant Matrices.
 * DRW: Remove uneeded calls to drw_viewport_engine_data_ensure when iterating.
 * DRW: Speedup: Don't call GPU_shader_uniform_vector if not needed.
 * DRW: Speedup: Only do batch cache request and validation once for duplis.
 * Eevee: Fix Tangent vectors using NormalMatrix and make them world space.
 * Eevee: Make planar downsampling not use instance drawing.
 * Eevee: Remove uneeded normalization.
 * Eevee: Replace DRW_shgroup_empty_tri_batch_create by procedural calls.
 * Eevee: Update matrices operations to not use combined matrices.
 * Fix Crash with armature using custom shapes.
 * Fix T64137 Empty Images flickering graphics when "Auto Depth" is enabled.
 * Fix T64158 Eevee: Mixed SSS shader becomes brighter and brighter.
 * Fix T64284 Mirrored Instances have flipped normals/face orientation.
 * Fix T64296 Z-axis overlay vanishes at scene origin in 3D Viewport.
 * Fix T64329 Crash when switching to Texture Paint.
 * Fix T64363 Eevee: Texture coordinates node turns material color to pink.
 * Fix T64366 DRW: Crash opening Mr Elephant scene since recent commit.
 * Fix T64384 Crash when switching to wireframe on tree_creature blend.
 * Fix T64399 Crash when trying to enter edit mode on instanced objects.
 * Fix T64420 Weight Paint colours not visible.
 * Fix T64464 App crashes when navigating between UV Editor and Viewport.
 * GPencil: Use common_view_lib.glsl.
 * GPU: Add GPU_vertbuf_discard and GPU_BATCH_UNUSED.
 * GPU: Move Material index to nodetree evaluation.
 * GPU: Refactor some shader for a bit more efficiency.
 * GPU: Remove GPU_INVERSE_NORMAL_MATRIX.
 * GPU: Remove ModelViewMatrix and ModelViewMatrixInverse usage.
 * GPUViewport: Fix possible hash colision with enabled engines.
 * Mesh Batch Cache: Speedup: Only alloc gpu_attrs if needed and don't clear.
 * Mesh Batch Cache: Speedup: Use flags to early remove unecessary checks.
 * Object Overlay: Add dupli fast path.
 * Overlay Mode: Use common_view_lib.
 * Overlay: Remove use of NormalMatrix.
 * Overlays: Use common_view_lib.glsl.
 * Wireframe: Create dupli fast path using DRW_duplidata_get.
 * Wireframe: Refactor vertex shader to use less matrices.
 * Workbench: Use common_view_lib and remove NormalMatrix usage.

Week 120 : 29th - 5th May
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.
 * Info


 * General development
 * DRW: Add debug utility for batch cache requests.
 * DRW: Add DRW_STATE_BLEND_PREMUL_UNDER.
 * DRW: Batch Cache: Add Loop normals calculation flag and cleanup style.
 * DRW: Draw checkerboard alpha pattern for Cycles.
 * DRW: Improve edit mode selection time when using auto-smooth.
 * DRW: Speedup: Improve time to validate batch cache.
 * Eevee: Add support for alpha background in viewport.
 * Eevee: Fix crash when rendering due to recent lookdev refactor.
 * Eevee: Lookdev: Cleanup implementation & support for Bloom and TAA.
 * Fix T63393 Eevee: Specular Shader's Clear Coat does not function.
 * Fix T63435 Eevee: Incorrect fresnel and normals for hair strands.
 * Fix T64009 Eevee: Normal Maps not working.
 * Fix T63997 Weird z-fight during weight paint.
 * Sculpt: Refactor draw manager sculpt drawing mechanism.

Week 120 : 22nd - 28th Apr
Still focused on bug fixing.
 * Info


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

Week 119 : 15th - 21st Apr
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.
 * Info


 * General development
 * DRW: Add batch garbage collection.
 * DRW: Expose VBO garbage collection timings.
 * DRW: Make shaded batch validation more correct.
 * Edit Mode: Change face mode edges display.
 * Edit Mode: Make edit edges black by default.
 * Edit Mode: Reduce Selected face alpha.
 * Edit Mode: Rework display to differentiate selection modes.
 * Fix T63284: Eevee: Crash when subsurface pass is enabled.
 * Fix T63377: "Principled Volume" node not working anymore in EEVEE.

Week 118 : 8th - 14th Apr
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).
 * Info

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
Focus on bug fixing. Also fixed some minor hotspots.
 * Info


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

Week 116 : 25th - 31st Mar
Some small changes to Eevee and a lot of bug fixing.
 * Info


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

Week 115 : 18th - 24th Mar
Nothing special this week. A lot of bug fixes and bug tracker cleaning.
 * Info


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

Week 114 : 11th - 17th Mar
Nothing special this week. A lot of bug fixes (mostly for Eevee) and bug tracker cleaning.
 * Info


 * General development
 * Despgraph: Make dupli objects inherit the parent's display type.
 * DRW: Fix missing state reset before draw pass.
 * Eevee: Fix black mesh when tangent is not present.
 * Eevee: Fix tangent being renormalized after interpolation.
 * Eevee: Planar Ref.: Invert view matrix to remove triangle front face flip.
 * Fix T61857: Eevee: DOF not working if the camera is in orthographic mode.
 * Fix T55620: Eevee: Artifacts with SSR and planar reflection.
 * Fix T58793: Eevee: Volumetric Clouds in Eevee not working | MacOs.
 * Fix T58610: Eevee: camera motion blur renders only one viewport sample.
 * Fix T58694: Eevee: Wrong result when using normal map and face is flipped.
 * Fix T59448: Eevee: broken Area Light shadows for square and rectange shape.
 * Fix T59501: Eevee: doesn't use integer node sockets.
 * Fix T60005: Eevee: Volume material doen't write alpha.
 * Fix T60170: Eevee: smoke color does not apply permanently.
 * Fix T60802: Eevee: No diffuse when using Clearcoat + Add shader.
 * Fix T60902: Eevee: Environment texture partially visible on transp. render.
 * Fix T60803: Eevee: Artifacts with SSR + Reflection Plane + 0 roughness.
 * Fix T61380: Eevee: Geometry normal node incorrect for backfacing faces in Eevee.
 * Fix T62621: Eevee: object scale changes tangent node output in Eevee.
 * Fix T59943: Workbench: Color banding present in Workbench render but not in viewport.
 * Fix T61526: Viewport: hair doesn't render in workbench but does with openGL.
 * Fix T62279: DRW: Rendering simple geometry corrupts with greasepencil layer.
 * Fix T62555: UI: Viewport borders flicker when splitting said viewport.
 * Particle: Remove Billboard Particle code.
 * View3D: Fix object without bounds displaying bounding boxes.

Focus on bug fixes.
 * Next week

Week 113 : 4th - 10th Mar
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.
 * Info


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

Focus on bug fixes.
 * Next week

Week 112 : 25th - 3rd Mar
Armature wireframe drawing was brought back by enabling transparent bones when needing wireframe.
 * Info


 * General development
 * Armature: Force Transparent bone in wireframe display type/mode.
 * Armature: Make selection only work on outlines in wireframe mode.
 * Armature: Remove the Transparent Bone overlay option.
 * Hair Particle: Fix issue on OSX due to hardware accelerated subdivision.
 * DRW: Fix matflag not being updated after first drawcall.
 * Fix T61801: Wireframes on curves not working.
 * Fix T61878: Selection does not allways work in wireframe mode.
 * Fix T62021: Wireframe input node doesn't work properly.
 * Fix T62040: Irradiance Volume broken.
 * Fix T62047: New wireframes missing fresnel effect.
 * Fix T62075: Edges generated by solidify modifier does not appear.
 * Fix T62090: Eevee shader compilation: undefined variable "att1_is_srgb".
 * Preferences: Remove warning concerning selection in edit mode with MSAA.


 * Documentation
 * Posted Selection Debugging with RenderDoc

Focus on bug fixes.
 * Next week

Week 111 : 18th - 24th Feb


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.
 * Info


 * General development
 * Wireframe: Add object and random coloring option in wireframe mode.
 * Fix T61837: Assert in Eevee multiresolution modfier in sculpt mode.
 * Sculpt Overlay: Fix mask drawn as flat shaded when smooth shading enabled.
 * GPUBuffers: Fix fast navigate in on smoooth multires grid.
 * GPUBuffers: Fix/cleanup multires implementation.

Finish the Armature Wireframe and continue bug fixes.
 * Next week

Week 110 : 11th - 17th Feb
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.
 * Info


 * General development
 * DRW: Fix Crash when enabling object wireframe option.
 * Fix T61374 : vertex not visible/selectable if it is at objects origin.
 * Fix: Eevee SSS not rendering as expected.
 * GPU: Change multisample resolve shader to output min depth.
 * Overlay: Remove extra contour drawing in wireframe mode.
 * Sculpt Draw: Add support for wireframe geometry.
 * Wireframe: Add depth offset to prevent zfighting of wireframe overlay.
 * Wireframe: Add workaround for osx wide wires.
 * Wireframe: Fix Artifacts with MSAA.
 * Wireframe: Fix selection broken since recent wireframe refactor.
 * Wireframe: Refactor to use GL_LINES instead of triangles with alpha blend.

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

Week 109 : 4th - 10th Feb
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.
 * Info

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.
 * Edit Mesh: Only draw vertices once.
 * Edit Mode: Reduce number of edges drawn.
 * Edit Mode: Fix edge partially displayed as selected with modifier preview.
 * Edit Mode: Make active face hint part of the face color.
 * Edit Mesh: Rework new implementation and use geometry shader to draw lines.
 * Edit Mode: Increase depth Bias for vertices.
 * Edit Mesh: Add workaround for system that does not support wide lines.
 * Edit Mesh: Refactor Edit cage drawing to use old style drawing.
 * UVEdit: Add function variants based on ToolSettings.
 * Fix T57342: Crash on render with workbench render engine via command line.

Refactor object mode wires drawing as usual fix bugs.
 * Next week

Week 108 : 28th - 3rd Feb
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.
 * Info

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.
 * Workbench: Make Material transparency part of the rgba color picker.
 * Workbench: Opti: Only request OIT buffers if needed.
 * Workbench: Support transparency from object color alpha.
 * Workbench: Add "Shadow" factor to Xray.
 * Workbench: Add transparency support for materials.
 * Object Mode: Fix reading past buffer end when drawing camera.

Finish the edit wire refactor. More bug fixing.
 * Next week

Week 107 : 21th - 27th Jan
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.
 * Info


 * General development
 * Workbench: Depth Of Field: Improve noise and Large radius.
 * Workbench: Depth Of Field: Add toggle option in shading popover.
 * Workbench: Depth Of Field: Cleanups.
 * Workbench: Depth Of Field: Optimisation.
 * Workbench: Depth Of Field: Initial Commit.
 * T60745: GPU texture alloc failed when opening Preference Windows.
 * DRW: Fix corner indices order in clipping plane setup.
 * GPUShader: Add GPU_VERTEX/FRAGMENT/GEOMETRY_SHADER defines.

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.
 * Next week

Week 106 : 14th - 20th Jan
Fixing bugs and polishing features.
 * Info


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

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

Week 105 : 7th - 13th Jan
This week was focused at finishing the UVedit and selection batch refactor started before vacation.
 * Info

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.
 * Fix T59990: Crash when entering edit mode with skin modifier enabled.
 * BMesh: Add BM_face_calc_area_uv.
 * DRW: Fix texture paint crashing if object has no material slot.
 * EditUV: Only clear data VBO when selection changes.
 * GPUMaterial: Cleanup / optimization.
 * GPUShader: Add selection id shader.
 * GPUShader: Cleanup Unused shaders.
 * Mesh Batch Cache: Put context evaluation out of batch cache.
 * Mesh Selection: Port to batch cache request.
 * Mesh Selection: Make Vertices not occluded by edges.
 * UVEdit: Port batches to batch request.
 * UVEdit: Port texpaint_loop_wire to batch request.
 * WM: Use draw manager to draw UV image editor spaces.
 * Workbench: Support node texture "closest" interpolation option.
 * Texture Paint: Add filtering option for texture paint overlay.

I will still focus on bug fixing.
 * Next week

Week 104 : 30th - 6th Jan
Vacation.
 * Info