User:Hypersomniac/Foundation/2020

Week 200-207 : 9th November - 31 December
Due to personal circumstances, I was not very active during this period and took some extensive leave.
 * Info

Week 199 : 2nd - 8th November
Nothing special to report. The fix to T81752 may change the render result but the old behavior was clearly broken.
 * Info


 * General development
 * Fix T82220 Missing viewport update after manual "HDRI Preview Size" input.
 * Fix T80842 Grease Pencil: Subtract mode is not working as expected.
 * Fix T81752 EEVEE: Camera Motion Blur is not blending steps properly.
 * Fix T73126 EEVEE: light probe baking ignores indirect bounces from SSS.
 * Fix T82385 EEVEE: Alpha Clip shadows actually using Alpha Hashed shadows.
 * GPU: Fix valgrind warnings about branching on uninitialized variables.
 * GL: Fix default framebuffers being bound using srgb.

Bug Fixing. And start working on EEVEE Depth of field improvements.
 * Next week

Week 198 : 26th - 1st November
I was ill most of the week. I did some code review but that's all.
 * Info

Bug Fixing.
 * Next week

Week 197 : 19th - 25th October


While investigating some regression to EEVEE's Screen Space Reflections I found some time to fix some issue with the technique when used on rough surfaces. The result may change and should make rough surfaces less artificially darker.
 * Info


 * General development
 * CLOG: Use CLOG to for debug output.
 * DRW: Disable anisotropic filtering on utility textures.
 * DRW: Fix custom engine not being BGL safe.
 * EEVEE: Principle BSDF: Use multi-scatter switch for the glass variant.
 * EEVEE: Screen Space Raytrace: Fix unreported banding artifacts.
 * EEVEE: Screen Space Reflection: Fix undefined behavior with invalid LOD.
 * EEVEE: Screen Space Reflection: Improve contact reflections.
 * EEVEE: Screen Space Reflection: Improve self intersection cases..
 * Fix T73793 Walk navigation crosshair gets hidden behind objects.
 * Fix T81784 BGL: Gizmo glitch when using glEnable/glDisable.
 * Fix T77658 EEVEE: Reflection Plane partially missing reflections.
 * Fix T81969 VSE: Wrong UI colorspace after scene strip update.
 * GLTexture: Fix Anisotropic filtering affecting the standard mipmap samplers.
 * Volumes: Fix compilation when building without openVDB.

Bug Fixing
 * Next week

Week 196 : 12th - 18th October
I added a new option for the motion blur so that shutter position can be changed just like in cycles.
 * Info


 * General development
 * EEVEE: SSR: Fix unreported smoothstep instability when border factor is 0.
 * Fix T81633 Workbench: TAA never resolve when enabling both X-Ray and cavity.
 * Fix T81004 Python: Images drawn in the Sequence Editor have wrong colors.
 * GL: FrameBuffer: Set GL_FRAMEBUFFER_SRGB if needed.
 * EEVEE: Motion Blur: Add shutter position option.
 * Fix T80086 EEVEE: Motion Blur: Subframe not taken into account.

Bug Fixing.
 * Next week

Week 195 : 5th - 11th October
I fixed some of the remaining issues from my changes from before my leave.
 * Info


 * General development
 * Fix T80974 GPU: Wide Line emulation shader does not always works.
 * BGL: Workaround broken bgl usage caused by GPU refactor.
 * Fix T79184: Specular highlight turns object black on some studio lights.
 * GPU: Fix assert when using gpu workaround and SSS + light renderpass.
 * GPU: Avoid blit operation modifying the wrong framebuffer during restore.

Bug sprint. Also some patches needs my attention.
 * Next week

Week 194 : 28th - 11th October
Vacation.
 * Info

Week 193 : 21st - 27th September
Vacation.
 * Info

Week 192 : 14th - 20th September



 * Info

Highlight of this week: GGX MultiScatter approximation. This avoid darkening of rough surfaces and increase their saturation a bit.

I also helped with the new GPencil holdout material and review other patches for 2.91.

Improved the renderdoc captures by using debug groups. This ways it is easier to debug and for new devs to understand how the drawing is happening.


 * General development
 * Cleanup: DNA_fluid_types: Add DNA member name before enum declarations.
 * Cleanup: GLShader: Use span and default constructor instead of vector(0).
 * Cleanup: GPUDebug: Use Vector instead of custom stack.
 * EEVEE: Add support for GGX Multi-scatter.
 * Fix T75061 Grease Pencil: MacOS: broken Gradient and Texture.
 * Fix T78653 Workbench: Broken Depth of Field in Viewport (Mac OSX).
 * Fix T79315 Normals Overlays broken with hidden geometry.
 * Fix T79557 EEVEE: Normalize in vector math node is not null vector safe.
 * Fix T80107 Selection: Regression in Box selection.
 * Fix T80193 Sequencer: Crash on float images when OCIO GLSL shader can't be used.
 * Fix T80681 Wireframe is not visible on square planes with 16384 quads.
 * Fix T80782 GPU: Curve editing widget point size broken after recent commit.
 * GL: Fix linking errors being useless..
 * GL: Make use of the new debug layer.
 * GPU: Add debug groups.
 * GPUDebug: Add function to test if inside a debug group.
 * GPUImmediate: Add system wide workaround for wide line.
 * GPUShader: Add meaningful debug names to builtin shaders.

I will be on holiday leave for 2 weeks. See you soon.
 * Next week

Week 191 : 7th - 13th September
I eradicated all the remaining of OpenGL in the common codebase, IT'S DONE! Also Spent time stabilizing master after all the changes.
 * Info

An effort was made to make the render debugging more effective by using the KHR_debug extension to it's full potential (using debug groups and object labels). I also implemented a custom debug layer for MacOS which does not have support for KHR_debug.

On a side note, I also spent a bit of time to make sure MoltenVK is usable on MacOS. The dependency handling is still not there yet but a developper can build blender with MoltenVK. However, we need to remove some requirements in order to have it runnable (mainly geometry shaders).


 * General development
 * DRW: Fix wrong use of GPU_blend.
 * Fix remaining GL calls/type preventing from building due to recent cleanup.
 * Fix T79538 Grease Pencil: Fill texture doesn't tile anymore.
 * Fix T80023 Invisible objects or glitches with object 'in front' + 'X-ray'.
 * Fix T80327 UI: Glitches in UI drawing.
 * Fix T80603 Workbench: Inverted alpha when rendering.
 * GL: Add fallback debug layer.
 * GL: Wrap extension support inside GLContext.
 * GLSamplers: Add debug object label.
 * GPU: Add Image Load Store extension support.
 * GPU: Cleanup implementation casts.
 * GPU: Fix wrong state before python callbacks.
 * GPU: Select Pick: Remove last GL call.
 * GPUBatch: Do not unbind shader after drawing..
 * GPUContext: Move GPUContext to gpu::Context for more consistency.
 * GPUFramebuffer: Make GPU_framebuffer_read_depth more flexible.
 * GPUImmediate: Fix wrong resize of immBatchAtMost.
 * GPUImmediate: Make activation / deactivation implicit.
 * GPUOffscreen: Push the GL state before and after binding.
 * GPUQuery: GL Backend isolation.
 * GPUState: Encapsulate glFlush and glFinish inside the GLContext.
 * GPUState: Encapsulate glPixelStorei inside the GLStateManager.
 * GPUState: Fix missing changed program point size state.
 * GPUState: Fix Point Size issues.
 * GPUTexture: Remove unused functions and avoid GPU_texture_opengl_bindcode.
 * UI: Fix Icon drawing on MacOS.

Wrap up the vulkan 2.91 targets and focus on bugs.
 * Next week

Week 190 : 31th - 6th September
A lot of background work this week. I managed to finish almost all the GL isolation tasks from. Only a few small modules and stray GL enum / function call are left to convert / cleanup.
 * Info

Nice touch, the navigation gizmo is now correctly anti-aliased on all platforms.


 * General development
 * Cleanup: GPUTexture: Remove use of GPU_texture_create_nD.
 * Cleanup: Use GPUBatch for icon and area drawing.
 * EEVEE: Try to allocate the lightcache and use fallback if failure.
 * EEVEE: Volumetric: Fix Mesa Compiler error.
 * EEVEE: Volumetric: Fix missing UBO.
 * GHOST: Enable debug context on offscreen context too.
 * Gizmo: Navigate: Make use of UI_draw_roundbox_4fv.
 * GL: Fix two GLerror.
 * GLDebug: Trim NVidia debug output.
 * GLFramebuffer: Avoid calling method on a partially destroyed GLContext.
 * GLImmediate: Use CL_CHECK_ERROR.
 * GLState: Add texture multibind and remove redundant binds.
 * GLState: Fix compilation warning on MSVC.
 * GLState: Use unsigned long long instead of unsigned long for shifts.
 * GLTexture: Add back texture proxy check.
 * GLTexture: Add direct state access support.
 * GLTexture: Add Feedback loop check.
 * GLTexture: Add validation for empty slots before drawing.
 * GLTexture: Fix crash with --debug-gpu on windows + nvidia.
 * GLTexture: Fix undefined behavior when binding textures the first time.
 * GPU: Move UBO binding validation to GL backend.
 * GPU: Rename gpu_extensions to gpu_capabilities.
 * GPUCapabilities: Isolate GL memory statistics.
 * GPUCapabilities: Isolate GL_STEREO to GLContext.
 * GPUDebug: Only enable resource checking in debug mode.
 * GPUDebug: Reformat GL debug callbacks and move them to GL backend.
 * GPUExtensions: GL backend isolation.
 * GPUFramebuffer: Encapsulate single attachement clear.
 * GPUIndexBuf: GL backend Isolation.
 * GPUOffscreen: Remove scissor and viewport state tracking.
 * GPUPlatform: GL backend isolation.
 * GPUTexture: Add skeleton of the new GLTexture class.
 * GPUTexture: Add support for samplers.
 * GPUTexture: Bump GPU_TEX_MAX_FBO_ATTACHED.
 * GPUTexture: Change texture creation API.
 * GPUTexture: GL Backend Isolation.
 * GPUTexture: Implement back 3D texture resize.
 * GPUTexture: OCIO: Workaround new missing bind error checking.
 * GPUTexture: Remove bind to edit calls.
 * GPUVertBuf: GL Backend Isolation.
 * GPUVertBuf: Make GPUVertBuf private to the GPU module.
 * GPUVertBuf: Rename GPUVertBuf to VertBuf and add some getters.
 * Math Utils: Add bitscan 64bit version.
 * OCIO: Make GLSL implementation use GPUUniformBuf to avoid debug errors.
 * OCIO: Use GPUTexture instead of OpenGL calls and remove gl dependency.
 * Sequencer: Fix crash caused by stereo rendering fix.

Finish the leftovers and stabilize master.
 * Next week

Week 189 : 24th - 30th August
This week I isolated the framebuffer and Immediate modules opengl backend (see ). I also took some time to fix some bugs.
 * Info


 * General development
 * BLI_utildefines: Fix assignment in binary ops for ENUM_OPERATORS.
 * Cleanup: GPUContext: Remove default_framebuffer_.
 * EEVEE: Fix broken rendering caused by SSR + Alpha blended material.
 * Fix T79494 Refrence Image reflects object after source got deleted.
 * Fix T79811 MacOS: Edit Mode - vertex/edge/face selection is missing.
 * Fix T79940 VSE Editor crash when opening a different scene as a strip.
 * Fix T80138 Node Editor: Add Frame turns background gray.
 * GL: Add error checking function.
 * GPU: Fix compilation issue caused by rBb43f4fda19b9.
 * GPUContext: Update internal framebuffer size when activating context.
 * GPUFrameBuffer: GL backend isolation.
 * GPUFramebuffer: Tag dirty after recursing downsample.
 * GPUFrameBuffer: Use debug name support.
 * GPUImmediate: GL backend isolation.
 * GPUSelect: Avoid assert caused by clearing without a depth mask.
 * GPUShader: Improve shader compilation log.
 * GPUState: Fix missing writemask encapsulation.
 * GPUState: Move Scissor and Viewport state to framebuffer.
 * GPUState: Move state limits getter to the area they belong.
 * GPUUniformBuf: Fix debug name being shorter than release name.
 * T79811 MacOS: Edit Mode - vertex/edge/face selection is missing.
 * WM: Remove 10year old workaround for buggy drivers.
 * Workbench: Fix assert with sculpt in textured color mode.

Continue on the OpenGL backend isolation.
 * Next week

Week 188 : 17th - 23rd August
While working on some fixes for the release, I worked a lot into refactoring the GPU module code to isolate the OpenGL call. This week I did the state manager, the Uniform buffer managment, and shader compilation. This caused some regression but I'm going to fix them this week.
 * Info


 * 2.90
 * Fix T79970 EEVEE: Camera Animation Breaks Motion Blur (Two Steps or More).
 * GPUTexture: Extend CUBE_MAP_ARRAY_ARB proxy workaround to all Apple gpus.


 * General development
 * Cleanup: DRW: Use GPUState instead of raw opengl calls.
 * Cleanup: GPU: Replace Batch uniform by shader uniform using macro.
 * Cleanup: GPU: Use explicit clear value in GPU_clear* commands.
 * Cleanup: Node: Use checker shader for preview background.
 * DRW: Fix crash drawing gpencil.
 * DRW: Remove some more direct gl state modification..
 * Fix T77564 Sequencer: (and compositor background) lost stereoscopy preview.
 * Fix T79568 EEVEE: Film transparent not working.
 * Fix T79782 GPU: Crash cause by shadow batch reference.
 * Fix T79971 Regression: Transform Gizmos doesnt work anymore.
 * Fix T80034 Crash using material panel on 2.91.0 alpha.
 * GPU: Avoid invalid GL API usage.
 * GPU: Fix some more remaining GL enums scattered outside of GL module.
 * GPU: Use GPUShader setters for uniforms removing uses of ShaderInterface.
 * GPUFramebuffer: Use GPUState to temporary change write mask in clear fn.
 * GPUState: Expose Stencil mask and test.
 * GPUState: Only apply state before drawing.
 * GPUState: Port default state to StateManager constructor.
 * GPUState: Remove gpuPushAttr/gpuPopAttr.
 * GPUState: Use explicit depth test enum.
 * GPUState: Use explicit Blend state enum.
 * GPUState: Use GPU_viewport to set viewport state in GPU_framebuffer.
 * GPUState: Use state setters inside selection code.
 * Selection: Fix lasso selection invisible.
 * GL backend isolation: GPUShader.
 * GL backend isolation: GPUShaderInterface.
 * GL backend isolation: GPUState..
 * GL backend isolation: GPUUniformBuf.

Fix regressions caused by the GL refactor and continue the refactor.
 * Next week

Week 186 : 3rd - 9th August

 * General development
 * EEVEE: LightCache: Add warning if the cache cannot be saved.
 * EEVEE: LightCache: Prevent crash when using a lightcache too big.
 * EEVEE: Render: Fix regression caused by previous Motion blur fix.
 * Fix T77517 EEVEE: Collection Holdout doesn't work in 2.90.
 * Fix T78160 EEVEE: Motion Blur: Bug with Follow Path animation.
 * Fix T78452 EEVEE: Motion Blur: Crash when using camera switching.
 * Fix T78520 EEVEE: No viewport update when changing material nodetree.
 * Fix T78529 EEVEE: Blend file corrupted during save caused by high Cubemap Size.
 * Fix T78954 EEVEE: Motion Blur: Bug with hair particles on linked objects.
 * Fix T79213 EEVEE: rendering with motion blur can change current frame.
 * Fix T79370 EEVEE: Texture paint does not update during stroke.
 * Fix T79246 GPUShader: compile error on AWS Elastic Graphics.
 * Fix T79509 Workbench: Object color mode broken if more than 4096 objects.
 * GPUTexture: Check PROXY textures for cubemap types.
 * GPUTexture: Improve debug print.
 * Workbench: Fix broken id pass.

Still bugfixing.
 * Next week

Week 185 : 27th - 2nd August
The effort continue to isolate the OpenGL specificity...This week we now have isolated everything to the GPU module.
 * Info

Now we still have to refactor the GPU module to have a clear backend abstraction. A start of the abstraction layer has been submitted for review and Vulkan ticket have been updated.

Other good news, the huge GLSL refactor / cleanup as finally landed.


 * General development
 * EEVEE: GLSL refactor/cleanup.
 * Fix T79347 GPU: Segfault starting blender.
 * Cleanup: IMB: Put lowercase prefix on static functions.
 * IMB: Refactor util_gpu.c to not expose enum getters.
 * GPUBatch & GPUImmediate: Use GPUShader instead of using raw OGL handle.
 * GPU_draw.h: cleanup before splitting.
 * RNA: Image API: Fix error in NULL check in rna_Image_gl_touch.
 * GPUShader: Fix linking with MSVC.
 * Cleanup: Split gpu_texture_image.c into BKE and IMB modules.
 * Cleanup: OCIO: Remove extern "C" around blender headers.
 * Cleanup: GPU: Remove GPU_draw.h and move fluid gpu function to DRW.
 * Cleanup: GPU: Move Image based function to GPU_draw.h.
 * Cleanup: GPU: Rename gpu_texture_smoke to fluid, and move back to C.
 * GPU: Refactor gpu_texture_image to not use GL calls.
 * GPU: Move GPU to C++.
 * PointCloud: Fix viewport issue when using radius attrib after not using it.

I'll go back to bug fixing the 2.90 branch until the release.
 * Next week

Week 184 : 20th - 26th July
The effort continue to isolate the OpenGL specificity... Still some calls and enum remaining but not a whole lot. A lot of effort also goes into refactoring the existing code to make it more readable (when it comes to old high level modules like the material gpu texture handling).
 * Info


 * General development
 * Cleanup: Image: Rename redundant enum for clarity.
 * GPUTexture: Replace GL textarget enum by Image enum.
 * GPU: Remove GL constant from BIF_glutil.
 * Cleanup: GPU_codegen.c: Use LISTBASE_FOREACH macro instead of for loops.
 * Cleanup: GPU: Remove unused code and header.
 * GPU: Move GPU to C++.
 * BLI: Add MACRO for enum usage in C++.
 * GPU: Add extern "C" to intern headers.
 * Cleanup: CodeQuality: Replace OB_DRAWXRAY by OB_DRAW_IN_FRONT.
 * Fix T78321 Eevee: Motion blur crash rendering animation with high steps count.

Continue the GL isolation.
 * Next week

Week 183 : 13th - 19th July
This week was focused on removing opengl calls from the code base to ease the vulkan transition. I also started writting the GHOST Vulkan backend (not yet commited).
 * Info

I also investigated EEVEE's motion blur crash.


 * General development
 * Cleanup: DRW: remove uneeded double bind.
 * Cleanup: EEVEE: Remove concentric samples..
 * Cleanup: EEVEE: Remove unused IRRADIANCE_CUBEMAP.
 * DRW: Add glsl math libraries.
 * DRW: Shader: Add DRW_shader_create(_fullscreen)_with_shaderlib.
 * DRW: View: Add ViewVecs calculation.
 * EEVEE: Fix undefined behavior in world output.
 * Fix T78647 UVEdit: Crash when entering edit mode with UV Editor open.
 * Fix T78977 GPU: blf fonts are not gamma corrected.
 * GPU: Add immBindTexture and immBindTextureSampler.
 * GPU: Remove calls to OpenGL functions outside of GPU module.
 * GPU: Shader: Move IN_OUT define to shader GPU_shader_create_ex.
 * GPUTexture: Add better swizzle support.
 * Workbench: Replace viewvecs caculation by DRWView.


 * Next week

Week 182 : 6th - 12th July
I've finish the initial point cloud rendering. We use geometry to avoid implementation complexity.
 * Info

Also uploaded EEVEE GLSL refactor for review.


 * General development
 * PointCloud: Initial rendering support for Workbench.
 * Fix T75943 EEVEE: Cubemaps shows black.
 * Fix T78307 UI: Drawing artifacts in the Blender UI on macOS.

I will focus mainly on cleaning the codebase of Opengl to start the vulkan implementation soonish.
 * Next week

Week 181 : 29th - 5th July
I finished reviewing the remaining 150bug reports in the backlog and fixed a few of them.
 * Info


 * General development
 * EEVEE: Fix undefined behavior when using BSDF nodes inside volume shaders.
 * EEVEE: Shadows: Remove 1 pixel padding to the cubemap.
 * Fix T74024 Faces missing, weird faces added.
 * Fix T74220 Workbench: Volumetric Color Mapping not ignoring alpha value.
 * Fix T74290 Overlay: Face Dots in front (X-ray) Visual Glitch.
 * Fix T76480 UI: Proportional Editing Color too Shallow on 2.9a.
 * Fix T76806 UV Editor: Display as Outline do not work on macOS.
 * Fix T77559 Avoid wrong ob->imat leading to several bugs.
 * Fix T77641 Sculpt mode performance regression in 2.83.
 * Fix T77069 EEVEE: Mix shader with holdout & transparent BSDF fails.
 * Fix T77549 GPUTexture: Crash caused by NULL parameter to glBindTextures....
 * Fix T61573 GPencil: Annotation thickness doesn't work with on OSX.
 * Fix T67587 Overlay: WeightPaint color blends with background in wireframe mode.
 * Fix T75483 Overlay: 3D Text selection obscures text.
 * Fix T76229 Overlay: Sulpt overlay not working if object use in-front option.
 * Fix T76337 Overlay: Wireframe: x-ray doesn't deactivate when set to 0.
 * Fix T77655 Overlay: Edit mode + wire drawtype + infront not transparent.
 * Fix T77780 Overlay: Weight colors are not in render in the right colorspace.
 * Fix T78124 Overlay: Image: Camera background image transparency not working.
 * GPUOffScreen: Remove the sample parameter.

To Be Decided...
 * Next week

Week 180 : 22nd - 28th June
The motion blur part 2 is finally in master. I went over >150 phabricator task to cleanup the backlog and organize the EEVEE & Viewport module. This gave me the oportunity to close a few duplicates, fix simple bugs, and get a better sense of what the main bugs are.
 * Info


 * General development
 * Fix T74024 Faces missing, weird faces added.
 * Fix T77549 GPUTexture: Crash caused by NULL parameter to glBindTextures....
 * Fix T78237 UI: NLA colors black and broken.
 * Fix T70193 Overlay: Grid floor disappears for orthographic camera.
 * Fix T66934 Overlay: "Outline Selected" overlay doesnt affect armatures.
 * Fix T67319 DRW: Large objects gets incorrectly culled.
 * Fix T71539 EEVEE: Still redraw during playback when it shouldn't.
 * Fix T67741 EEVEE: World update don't update lightcache if one viewport uses lookdev.
 * Fix T78215 EEVEE: incorrect Render Passes results when using motion blur.
 * Fix T78073 EEVEE: new motion blur and overscan produce wrong render.
 * Fix T77672 EEVEE: Reflections with reflection plane broken (regression).
 * Fix T78190 EEVEE: Render passes broken in final render.
 * Fix T62961 EEVEE: Viewport refresh when hovering widgets.
 * EEVEE: Fix crash when using motion blur without postfx blur.
 * EEVEE: Motion Blur: Add accumulation motion blur for better precision.
 * UI: Widget: Replace geometry by fragment shader drawing.
 * UV Editor: Fix Vertex Overlay color not being color managed.
 * Fix T62917 UV editor: Edge overlay not shown when edge overlay type is Dash.

To be decided. Either refactor/cleanup EEVEE's GLSL codebase or work on pointcloud rendering.
 * Next week

Week 179 : 15th - 21st June


I've finished part 2 of the Motion Blur improvement allowing much better results and add hair motion blur support. Part 1 has been merged to master.
 * Info


 * General development
 * EEEVEE: Object Motion Blur: Initial Implementation.

Fix some regression and organize the next few weeks. Start on point cloud rendering.
 * Next week

Week 178 : 8th - 14th June
I've finished part 1 of the Motion Blur improvement. Testing is welcome.
 * Info


 * General development
 * DRW: Avoid undefined behavior when running multiple iteration.
 * Fix T77586 EEVEE: UDIM image Texture doesn't Display properly.
 * Fix T77599 Image UV editor use linear interpolation.
 * Fix T76273 Glitches caused by glCopyImageSubData on windows + intel gpu.
 * Workbench: Use eGPUSamplerState to change texture sampling behavior.

Implement part 2 of Motion Blur improvement, allowing for much higher quality motion blur. Also add support for hair motion blur if times allow.
 * Next week

Week 177 : 1st - 7th June
This week I merged all my refactor branches to master. This allowed me to do quite some long due cleanups that fixed the OSX + AMD slowdown. The rest of the week was dedicated to cleanup and stabilization.
 * Info

Unfortunately, I had no time to dedicate to motion blur yet.


 * General development
 * DRW: Always unbind texture after drawing.
 * DRW: Fix T77370: Redundant anti aliasing/blur effect.
 * DRW: Remove automatic bind locations and use hardcoded locations for textures.
 * DRW: Remove defered uniform creation.
 * DRW: Remove use of builtin matrices and replace by common_view_lib.
 * EEVEE: Refactor of eevee_material.c.
 * Fix T77315 Overlay: Selection Highlighting not working with complex scene.
 * GPU: ShaderInterface: Refactor to setup all uniform at creation time.
 * GPU: Texture: Remove multibind tracking.
 * GPU: Texture: Replace internal sampler state by explicit state object.
 * GPUImmediate: Fix array uniform not working.
 * GPUMaterial: Add support for different sampler state per image sampler.
 * GPUMaterial: Fix shader compilation when using UDIM textures.
 * GPUMaterial: Rework/simplify image / environment texture filtering.
 * GPUShader: Bind shader for interface creation.
 * GPUShaderInterface: Add Builtin Uniform blocks query.
 * GPUShaderInterface: Change builtin array to array of location/bind.
 * GPUShaderInterface: Fix out of bound reads.
 * GPUShaderInterface: Reduce creation time on some drivers..
 * GPUTexture: Add support for binding textures with custom sampler states.
 * GPUTexture: Fix samplers configuration typo.
 * GPUTexture: Make GPU_texture_unbind_all faster on newer opengl version.

Work on motion blur (for real this time!).
 * Next week

Week 176 : 25th - 31st May
While fixing last minute bugs, I did some cleanup of old areas to fix some long standing issues and complexities inside the drawing code.
 * Info


 * General development
 * EEVEE: Fix memory leak when using SSS render pass..
 * GPencil: Reduce aliasing for subpixel lines.
 * DRW: Selection: Extend small object selection workaround to all overlays.
 * DRW: Add DRW_shgroup_uniform_vec4_array_copy.
 * Fix T77130: Visually broken/stepped wireframe in object mode (regression).
 * Fix T72121: Measurements are being drawn incorrectly if one end is off screen.

Work on finishing EEVEE object motion blur.
 * Next week

Week 175 : 18th - 24th May
Still fixing bugs for the release.
 * Info


 * General development
 * Overlay: Wireframe: Add visualization for Hairs in wireframe mode.
 * UI: Fix Wideline AA for timeline.
 * GPU: Attempt to fix Crash on startup with Intel HD Graphics 620/630.
 * Fix T76080 Workbench: Background Glitches caused by Screen Cavity effect.
 * Fix T66916 UI: Wrong information in Status bar after cancelling a render.
 * Fix T76564 Curve: Missing orco cause mesh to not render.
 * Fix T73847 Overlay: Camera orthographic scale moves background image.
 * Fix T76730 DRW: Sorting of empty shading groups..
 * Fix T76828 GPencil: Toggle Caps doesn't work.
 * Fix T76909 GPencil: Layers with mask(s) invisible when using "in front".

Bugfix.
 * Next week

Week 174 : 11th - 17th May
Still fixing bugs for the release.
 * Info


 * General development
 * DRW: Fix debug performance stats.
 * Fix T76113 GPU: Crash closing file browsers with AMD GPUs.
 * Fix T76126 Overlay: Glitch when hiding Nurb vertices.
 * Fix T76168 Workbench: Shadows behind a culled backface are inverted.
 * Fix T76216 Workbench: Glicht when switching from quad views to normal view.
 * Fix T76413 Gizmos: Trackball's preselection highlighting is too bright.
 * Fix T76476 EEVEE: Invalid Vector to Float conversion for nodegroups.
 * Overlay: Replace depth blitting by GPU_texture_copy.
 * UI: Fix Unreported missing background for azone arrow.

Bugfix.
 * Next week

Week 173 : 4th - 10th May
I finished the EEVEE material refactor and it is up to review.
 * Info


 * General development
 * Fix T75958 Overlay: Blender Crashes when selecting without Depth Picking.
 * Fix T76045 Gizmo: line_width does not work in latest version.
 * Fix T76393 Gizmo: Crash on assert(batch->program_in_use == 0).

Focus on high priority bugs for the release.
 * Next week

Week 172 : 27th - 3rd May
This week has been low in terms of output.
 * Info

I started trying to fix the right way but figure it was way too much work for a release fix. I then went for a quicker fix for this issue.

Then in an attempt to fix I started to refactor EEVEE's material internal system. The refactor is not finished but will greatly improve code clarity and even performance in some cases.


 * General development
 * Curve: Force pretesselate modifier to output a Mesh output.

Finish the refactor and continue on bug fix.
 * Next week

Week 171 : 20th - 26th April
Still bug fixing. Some high priority bug and one big usability issue on OSX has been fixed.
 * Info


 * General development
 * Fix T75736 Viewport update problem when switching between view layers.
 * Fix T75910 Overlay: Face Orientation not working for "In Front" objects.
 * Workbench: Fix weight paint overlay and wireframe for infront object.
 * GPU: Add better support for texture copy fallback.
 * GPU: Add Polyline shader (wide line emulation).
 * Fix T73741 Grid Floor render on top of Wireframe objects.
 * Fix T74173 Assert when scaling camera in viewport to zero.
 * Fix T72506 EEVEE: Collection Holdout propagates accross material instances.
 * Workbench: Use GPU_texture_copy instead of GPU_framebuffer_blit for TAA.
 * GPU: Add GPU_texture_copy.

Continue on fixing the viewport related bugs.
 * Next week

Week 170 : 13th - 19th April
Bug fixing week.
 * Info


 * General development
 * Fix T75902 Workbench: render crash.
 * Fix T74199 Overlay: Turning off overlays also hides edges.
 * Fix T73815 Overlay: Z axis line doesn't show alone on the workspace.
 * Fix T75832 DRW Hair: Crash caused by shader compilation.
 * Fix T74805 Workbench: Back faces flicker with Auto Depth is enabled.
 * Overlay: Fix unreported bug: Edit mode overlays drawing during auto depth.
 * Workbench: Fix unreported bug: garbage viewport when changing AA settings.
 * Fix T74964 Stereo 3D anaglyph and interlace not working.
 * Fix T75750 Image Editor: Rendered result is much brighter than in viewport.
 * Fix T75751 Overlay: Clipping Region crashes Blender.
 * Fix T75443 Color Management: Use after free crash when using curve mapping.
 * GPUShader: Implement workaround for gizmo drawing on sRGB framebuffer.

Continue on fixing the viewport related bugs.
 * Next week

Week 169 : 7th - 12th April


Working on improving the motion blur post process for EEVEE I had a hard time figuring out how to adapt state of the art algorithm to a separable blur technique. The final results are promising but could be improved further. The implementation is still half done as the blur maximum distance is currently limited.
 * Info


 * General development
 * EEVEE: Motion Blur: Improve post processing.
 * EEVEE: Motion Blur: Fix shutter delta.

I've neglected other task too much and I should go back to bugfixing to stabilize 2.83.
 * Next week

Week 168 : 30th - 6th April
This week was focused on reworking on motion blur for EEVEE.
 * Info

It's a hard nut to crack and I've finally come to the bitter conclusion that we can only do final render motion blur for now. Viewport Motion Blur may come latter down the road but may not be as precise.


 * General development
 * Fix T74547 EEVEE: Image texture crash with use after free.
 * Fix T75144 Grease Pencil: Python generated strokes flicker and crash.
 * Fix T74663 GPencil: Fills are Flickering on Nvidia.
 * GPencil: Fix overlay blend mode creating inverted colors.
 * EEVEE: Bloom: Fix inverted source and base buffer.


 * Motion Blur
 * EEVEE: Motion Blur: Rework object motion vector rendering.
 * EEVEE: Motion Blur: Fix camera motion blur in render.
 * EEVEE: Motion Blur: Fix rendering and center sample on current frame.
 * EEVEE: Motion Blur: Make Temporal accumulation clear up the noise.
 * EEVEE: Motion Blur: Fix missing motion vectors after first TAA sample.
 * EEVEE: Motion Blur: Fix TAA reprojection.
 * EEVEE: Motion Blur: Fix motion blur in render.
 * EEVEE: Object Motion Blur: Initial Implementation.

I'll dedicate this next week finishing the motion blur improvement. After that we should have object motion blur (already done), deformation motion blur (proof of concept implementation done), and accumulation motion blur (quite simple to add).
 * Next week

Week 167 : 23rd - 29th March


Highlight of this week is the improvement made to the wireframe to avoid most of the aliasing due to zfighting. Note this is only enabled when smooth wires are enabled because of the cost of it. It is still enabled by default.
 * Info

I've finished to review patches and landed a few of them. Notably the improvement to EEVEE's hair transparency.


 * General development
 * Overlay: Edit Mesh: Make offset depth dependent (w.r.t depth precision).
 * Overlay: Outline: Fix unreported feedback loop when smooth wire is disabled.
 * GPU: Add workaround for faulty default attrib values on some drivers.
 * Overlay: Fix crash caused by NULL passes.
 * Overlay: Wireframe: New method to avoid zfighting with geometry.
 * Overlay: Wireframe: Make facing ratio offset depends on gl_Position.w.
 * Fix T75087 Workbench: DoF: Divide By Zero when antialiasing is disabled.
 * Fix T73505 EEVEE: Group output node sockets default value not working.

I'll focus on finishing the Motion Blur experiment I started a while ago.
 * Next week

Week 166 : 16th - 22nd March
This was a week off but managed to review most of the patches assigned to me.
 * Info

Week 165 : 9th - 15th March
This week I've finished and merged both EEVEE's new reflection cubemaps and Workbench refactor. GPencil refactor has also been merged to master.
 * Info


 * General development
 * EEVEE: Update Preview file with new lightcache.
 * EEVEE: Bump minimum probe level to make rough reflection more precise.
 * EEVEE: Hair: Fix wrong color when using color attribute without actual data.
 * EEVEE: Fix test crashing.
 * EEVEE: Replace octahedron reflection probe by cubemap array.
 * Workbench: Fix default view not reset after drawing.
 * Workbench Simplification Refactor.
 * GPencil: Use high precision float buffer for final rendering.
 * GPencil: Fix T74625 Airbrush doesn't paint anything.
 * GPencil: Fix RNA range for uv_rotation.
 * Overlay: Add antialiasing to particle sprites.
 * Fix T74536: Grease pencil immediately crashes on macOS.
 * Fix T74438: Overlay: Loose verts and particle not draw in some conditions.

I'll focus on patch reviews.
 * Next week

Week 164 : 2nd - 8th March


I helped fixing the Grease pencil modifiers to have better workflow integration with blender. Notably the noise modifier.
 * Info

I've rewritten the Workbench Engine in order to improve code quality. It should also lower Vram usage in some cases.

A few improvement came out of it notably the fix for a long standing known issue where transparent object could not be displayed "in-front".

I also tweaked the hair random shading to be less dark than it should.

We also changed the antialiasing method from FXAA to SMAA which has almost the same performance cost but with better output.


 * Grease Pencil Refactor
 * GPencil: Fix texture not appearing in render.
 * GPencil: Modifier: Simplify: Fix modifier distance and length property feel.
 * GPencil: Modifier: Fix smooth factor range.
 * GPencil: Modifier: Noise: Replace Full Stroke option by Noise Scale.
 * GPencil: Fix potential out of bound read in Noise modifier.
 * GPencil: Modifier: Use unique seed for each stroke for Noise modifier.
 * GPencil: Modifier: Cleanup Multiple Stroke modifier UI & code.
 * GPencil: Modifier: Rework Array modifier's RNG for better random variation.
 * GPencil: Fix rebase error.
 * GPencil: Modifier: Change Noise Modifier behavior.
 * GPencil: Modifier: Improve UI of offset modifier.
 * GPencil: Modifier: Change Thickness modifier behavior.
 * GPencil: Modifier: Unlock range of Saturation and Value in HSV modifier.
 * GPencil: Modifier: Fix UI of Tint and Opacity modifiers.
 * GPencil: Fix stroke textures not working because of material chunk reuse.
 * GPencil: Fix sbuffer rendering twice when using onion skinning.
 * GPencil: Fix occlusion bug when using multiple material.
 * GPencil: Fix crash when rendering in new window.


 * Workbench Refactor
 * Fix wrong materialId inside material setup resulting in buffer overflow..
 * Workbench: Optimize out uneeded passes..
 * Workbench: Add short explanation about the techniques used for rendering.
 * Workbench: Refactor: Fix transparent depth pass optimization logic.
 * DRW: Fix offscreen rendering.
 * Workbench: Refactor: Disable Cavity rendering on infront objects.
 * Workbench: Refactor: Draw transparent in wireframe mode..
 * Workbench: Refactor: Remove old unused code.
 * Workbench: Refactor: Add Volumetric support.
 * Workbench: Refactor: Antialiasing.
 * Workbench: Refactor: Add Dof Support.
 * Workbench: Refactor: Add outline support.
 * Workbench: Refactor: Add cavity support.
 * Workbench: Refactor: Add Shadow support.
 * Workbench: Refactor: Add hair support + tweak the randomness of hairs color.
 * Workbench: Refactor: Add Infront support.
 * Workbench: Refactor: Add transparent (xray) support.
 * Workbench: Refactor: Only allocate id buffer if needed.
 * Workbench: Refactor: Add specular toggle support.
 * Workbench: Refactor: Add matcap support.
 * Workbench: Refactor: Add support for Flat shading.
 * Workbench: Refactor: Add support for texpaint & vertpaint.
 * Workbench: Refactor: Support Material data.
 * Workbench: Refactor: Code reorganization.
 * BLI_memblock: Allow to use BLI_memblock_elem_get using only elem index.
 * DRW: Manager: Expose resource handle getter.
 * DRW: Shader: Add shader library manager.

I'll help with the merge of all the branches I did or helped and will resume patch review for bcon 2.
 * Next week

Week 163 : 24th - 1st March


I've rewritten how reflection probes store their data. We now use cubemap arrays which are much easier to handle and have less artifacts (see picture). We implemented a fallback code for hardware not supporting cubemap arrays. The max number of probes is reduced on low-end hardware to 42 while more moder GPU still have the limit of 128. Since 2.83 will be a LTS release, it was the perfect moment to implement a versioning system inside the lightcache to avoid problems in the future.
 * Info

Another highly requested improvement was the addition of partially blurred background in lookdev mode. I removed the xray dithering noise as we can do better thanks to the colormanagment refactor.

I added an option to use high bitdepth on HDR texture that have 32bit precision. The option is per image datablock and is disabled by default.


 * EEVEE Cubemap Array Refactor
 * EEVEE: Check Lightcache type along with the version check..
 * EEVEE: LightCache: Fix error in texture readback and creation.
 * EEVEE: Replace octahedron reflection probe by cubemap array.
 * EEVEE: LightCache: Reset lightcache info message on file load.
 * EEVEE: Add version check on lightcache data.
 * EEVEE: Use cubemap array to avoid shader texture filtering workaround.
 * EEVEE: Deprecate old cache.
 * EEVEE: Replace octahedron reflection probe by cubemap array.
 * GPU: Implement cubemap array support through extension.


 * General developement
 * Cleanup: Workbench: Remove checkerboard depth.
 * EEVEE: Fix memleak when G.is_break is set from another thread.
 * EEVEE: Fix seams in reflection cubemap on low roughness.
 * EEVEE: Lookdev: Add support for partially blurred background.
 * EEVEE: Lookdev: Fix cubemap resolution change not refreshing lightcache.
 * EEVEE: Lookdev: Fix lookdev spheres positioning in viewport render.
 * GPU: Add Image property to allow high bitdepth support on a per image basis.
 * Overlay: Edit Mode: Fix wireframes being brighter because of linear blend.
 * Overlay: Fix overlays being washed out by render colors.
 * Overlay: Fix wireframes being brighter because of color management.
 * Overlay: Remove Xray dithering noise.

I've also started a workbench refactor to reduce code complexity and ease future developement. I'll finish it next week and help with last grease pencil
 * Next week

Week 162 : 17th - 23th February
This week has been mostly about fixing the regressions caused by the ColorManagement patch merged last week.
 * Info

I also have done a full review of Grease Pencil modifiers workflow https://developer.blender.org/D6293#164005. I also spent some time reviewing the EEVEE new render passes patch.

I investigated an important ColorManagement bug that is affecting the Addon alpha blending drawing. It has been reported here


 * General development
 * ColorManagement: Dithering Improvement.
 * DRW: Fix facing reset when drawing with inverted camera.
 * DRW: Fix wrong view transform used in solid mode if using workbench engine.
 * DRW: New High Quality Normal & Tangent extract.
 * DRW: Support inverted view matrix.
 * EEVEE: Fix default material disappearing when SSRefraction is enabled.
 * EEVEE: Fix memleak when G.is_break is set from another thread.
 * Fix T73748 Overlay: Infront disappearing/glitched while in Xray mode.
 * Fix T73793 Overlay: Walk navigation crosshair gets hidden behind objects.
 * Fix T73876 Overlay: Armature: Pose bones display randomly.
 * Fix T73914 Overlay: Unable to select bone in pose mode.
 * Fix T74019 Eevee High Quality Normals causing pitch black faces.
 * GPU: Fix huge performance regression regarding instancing.
 * GPU: Limit Mesa workaround to older version.
 * Overlay: Edit Mode: Fix wireframes being brighter because of linear blend.
 * Overlay: Fix wireframes being brighter because of color management.
 * Overlay: Remove Xray dithering noise.
 * Overlay: Fixed blending issue when not using smooth wire.

Continue bug fixing. Work on polishing small features.
 * Next week

Week 161 : 10th - 16th February
I've landed a big commit about the color management improvement in the viewport which seems to have broken a few things. Things are currently being handled. The Grease Pencil refactor is also done, I rewrote the mask system again to support layer linking and we plan to post the patch for review this week.
 * Info


 * General development
 * EEVEE: Shadow: Fix cascade shadowmap bias multiplicator.
 * Workbench: Fix depth of field background being glitchy.
 * Workbench: Fix premultiply alpha issue in transparent material.
 * DRW: Fix viewport render always rendering with transparent background.
 * DRW: Fix color management in material/rendered mode.
 * DRW: Color Management improvement.
 * Overlay: Fix non meshes object disappearing if smooth wire is not enabled.
 * Fix T73442 Overlay: Wireframe infront buggy in material shading mode.
 * GPencil: Opti: Merge AntiAliasing pass with compositing pass.
 * GPencil: Fix sbuffer stroke not overlapping with previous stroke.
 * GPencil: Support XRay mode in solid and fix occlusion in wireframe mode.
 * GPencil: Fix NaN result in divide blend mode.
 * GPencil: Fix undefined behavior caused by stroke aspect commit.
 * GPencil: Fix alpha textured stroke buggy behavior.
 * GPencil: Add Dot aspect support back.
 * GPencil: Fix depth being written outside of masks boundaries.
 * GPencil: Render: Fix crash when using region rendering.
 * GPencil: Remove unpredicatble behavior when rendering without depth pass.
 * GPencil: Refactor: Remove the hardcoded sRGB final transform for viewport.
 * GPencil: Refactor: Add per mask inversion capability.
 * GPencil: Refactor: Add implementation of new mask list system.

Fixing some high priority bugs and finish some other small tasks & reviews.
 * Next week

Week 160 : 3rd - 9th February
Beside usual bugfixing, one noticeable improvement of this week is the improvement made to object selectiong to avoid not selecting subpixel (tiny) objects in rectangle select.
 * Info


 * General development
 * Fix T73045 Crash entering edit mode for "Object Font" instance mesh.
 * Fix T61685 Curve extrusion looses flat shading in certain viewport shading.
 * Fix T73517 Overlay: Edit Mode: X-Ray does not work if xray is equal to 1.
 * Fix T69834 Edit Mesh: Multi-object edit crash when an instance is hidden.
 * Fix T72155 Overlay: Bone X-ray no longer works in pose or weight paint mode.
 * Fix T72261 Overlay: Edit Mesh: Edges not visible when using "In front".
 * Fix T72504 EEVEE: Crash when rendering Instance Collection with hair.
 * Fix T73127 EEVEE: Reflection plane not visible in lookdev without scene world.
 * Fix T70121 EEVEE/GPencil: Curves cause crash when using background rendering.
 * Fix T67641 Gizmo3D: Transform gizmo disappear in very close view.
 * Selection: Add conservative rasterization to select really small objects.
 * Overlay: Armature: Fix Display armature as bound box in object mode.
 * GPU: Remove disabling of indirect drawcall batching on NVIDIA hardware.

I'll be focusing on finishing and merging Grease Pencil, draw-colormanagement and continue bugfixing.
 * Next week

Week 159 : 27th - 2nd February
I'm still focusing on general bug fixing for the release of 2.82. The draw-colormanagement branch should be merged to master this week if everything goes fine.
 * Info


 * General development
 * Displist: Add mikktspace tangent space generation for curve/text//surface objects.
 * EEVEE: Test maximum texture size before render..
 * Fix T72593 Blender crashes when modifier change the material count.
 * Fix T54422 FluidSim: ColorRamp set position does not update the viewport.
 * Fix T62730 Overlay: Selected edit hair points highlight is incorrect.
 * Fix T65146 EEVEE: Curve Texture Coordinates in Cycles and Eevee differ.
 * Fix T66699 EEVEE: Material Preview "World" option doesn't work.
 * Fix T67060 EEVEE: Noise caused by disk lights.
 * Fix T67552 EEVEE: Vector Curves node clamps maximum input value at 1.0.
 * Fix T69070 EEVEE: Volume shader glitch if object as axis with 0.0 scale.


 * Viewport Color Management Refactor
 * Overlay: Fix edit text overlay invert logic op not working.
 * Overlay: Armature: Fix look regression because of linear space rendering.
 * Overlay: Put all colors inside draw_common.c for correct colormanagment..
 * Overlay: Support viewport background modes.
 * Overlay: Move Alt+B clipping bounds display from workbench to overlay.
 * Render API: Make external engine render in linear space for the viewport.
 * OCIO: Use GroupTransform to avoid doing 3 transforms instead of 2.

Continue bug fixing.
 * Next week

Week 158 : 20th - 26th January
I have been sidetracked by color management from my bug hunting duty. I've created a branch that includes the colormanagent changes that are likely to go in for 2.83. This should fix issues with overlays, background images, Grease Pencil compositing and clear the way for the future realtime compositor. I tried to find a general implementation that does not need much more processing time nor VRAM.
 * Info

Note these changes does only concern the viewport. The branch (draw-colormanagement) still has a few issues that needs to be resolved before merge.


 * General development
 * Fix T69121 DRW: Missing depth buffer refresh with GPencil + Cycles.
 * Fix T71374 EEVEE: Fix Node group socket not converting inputs as in Cycles.
 * Fix T67050 Overlay: Forcefield limits are not dashed.
 * Fix T66956 EEVEE: NaN produced by bad geometry mess with the DoF.
 * Fix T73335 Overlay: Light Distance line does not represent custom distance.
 * Overlay: Improve Outline diagonal Antialiasing.


 * Viewport Color Management Refactor
 * DRW: Color Management: Do some rearangement of the draw code.
 * DRW: Color Management: Fix ghosting with cycles..
 * DRW: Color Management: Fix viewport render pipeline.
 * DRW: Color Management: Rework code to accept new color transform needed.
 * DRW: Color Management: Move color management to the GPUViewport.
 * DRW: Color Management: Remove DrawEngineType draw_background function.
 * GPU: Add sRGB framebuffer support.
 * GPUViewport: Add fallback colormanagment.
 * GPUViewport: Fix image uv editor..
 * OCIO: Improve/Cleanup Implementation.
 * OCIO: Support overlay blending in linear colorspace in GLSL backend.
 * Overlay: Add other background types (checker and gradient).
 * Overlay: Cleanup Image background implementation.

Continue bug fixing.
 * Next week

Week 157 : 13th - 19th January
General bug tracker week. Some long standing bugs have been solved.
 * Info


 * General development
 * GPencil: Refactor: Reuse GPENCIL_MaterialPool across multiple objects.
 * GPencil: Refactor: Speedup: Add drawcall merging of consecutive strokes.
 * GPencil: Refactor: Allocate GPU framebuffers only if necessary.
 * DRW: Store vertex color in linear format on GPU.
 * DRW: Fix stencil being modified by passes that are read only.
 * Fix EEVEE: Planar Reflection data has inverted facing.
 * Fix T67942 EEVEE: Crash when empty is set as camera and motion blur is on.
 * Fix T69794 EEVEE: "Bake Cubemap Only" resets Irradiance Volume if world is updated.
 * Fix T70766 EEVEE: Performance drop with node tree in 2.81.
 * Fix T71402 EEVEE: Transparent material add volume scattering.
 * Fix T71532 EEVEE: Hair UV/Color attributes not working.
 * Fix T71788 EEVEE: Invalid (pink) shader when using wireframe node.
 * Fix T72104 Blender selects faces outside of Clipping Region if X-Ray is off.
 * Fix T72152 DRW_debug_sphere Not Working After Overlay Refactor.
 * Fix T72490 Collections: Exclude From View toggle causes segment violation.
 * Fix T72547 Overlay: Wireframe clipping issues.
 * Fix T72574 Overlay: 'Show Cone' for Spotlights not working anymore.
 * Fix T72871 Overlay: Spotlights cone is much smaller than before.
 * Fix T72957 Crash using Eye dropper in Edit mode with X-ray.
 * Fix T73044 Crash in UV editor when changing UV selection modes.
 * Fix T73116 Crash on startup caused by implicit conversion in glsl.
 * Overlay: Edit Mode: Fix vertices depth test not always on.
 * Overlay: Fix wrong 3D icon for cubemap lightprobes.

Continue bug fixing duty.
 * Next week

Week 156 : 6th - 12th January
This past week I finally finished the Grease Pencil refactor. We have (almost) all features implemented and Antonio Vazquez will be stabilizing the branch from now on.
 * Info

The week was focused into bringging back support form gpencil overlays in a cleaner way using the overlay engine (instead of custom builtin overlays inside the gpencil engine).

I also made sure all shading and color modes are on par with the mesh usage.


 * General development
 * GPencil: Fix vertex color draw tool color blending.
 * GPencil: Refactor: Add back guides and control points overlays.
 * GPencil: Refactor: Add canvas grid.
 * GPencil: Refactor: Add fill vertex color suppport.
 * GPencil: Refactor: Add gpencil case to BKE_object_is_in_editmode.
 * GPencil: Refactor: Add outline overlay.
 * GPencil: Refactor: Add support for GPencil wireframes.
 * GPencil: Refactor: Add Weight Paint support.
 * GPencil: Refactor: Disable GPencil Outline in edit mode.
 * GPencil: Refactor: Don't draw Gpencil objects if drawtype is not solid.
 * GPencil: Refactor: Edit Mode support..
 * GPencil: Refactor: Edit Mode: Add support for minor features.
 * GPencil: Refactor: Enable gpencil engine if xray is not used.
 * GPencil: Refactor: Enable Vertex color mode in vertex paint.
 * GPencil: Refactor: Fix depth sorting with workbench render.
 * GPencil: Refactor: Make Lighting effect only happen in lookdev & render mode.
 * GPencil: Refactor: Make sbuffer batches managment more robust.
 * GPencil: Refactor: Make Texture UV transform behave like normal 3D ones.
 * GPencil: Refactor: Move batch cache functions to DRW module.
 * GPencil: Refactor: Move iterator to BKE.
 * GPencil: Refactor: Move vertex shader logic to gpencil_common_lib.glsl.
 * GPencil: Refactor: Overlay: Add hide selection option back.
 * Gpencil: Refactor: Overlay: Fix crash when no gpencil object is active.
 * GPencil: Refactor: Remove 3D stroke offset.
 * GPencil: Refactor: Remove last occurence of stl->storage.
 * GPencil: Refactor: Remove per layer random color jitter in wireframe.
 * GPencil: Refactor: Replace Stroke Miter break by rounded corners.
 * GPencil: Refactor: Rewrite the render pipeline.
 * Gpencil: Refactor: Support per layer random color in wireframe overlay.
 * GPencil: Refactor: Support solid mode color modes.
 * GPencil: Refactor: Use drawcall matrices instead of custom one.
 * Overlay: Allow alpha blend passes to write to the line buffer.

I will dedicate my time to the bug tracker & patch review until further notice.
 * Next week

Week 155 : 30th - 5th January
Most of the Grease Pencil refactor is done, only the overlays need to be implemented back. This will be the focus of next week alongside some final UI review and cleanup. I hope to bring it to a mergeable state by the start of the week after.
 * Info

Some noteworthy change is the refactor of current stroke drawing now supporting FX and correct blending. An option will be added to trade accuracy for stroke smooth "feel".


 * General development
 * GPencil: Refactor: Add SMAA as Antialiasing solution.
 * GPencil: Refactor: Fix black GPobjects in hero files.
 * GPencil: Refactor: Add stroke fast drawing.
 * GPencil: Refactor: Implement sbuffer stroke drawing.
 * GPencil: Refactor: Add back gradient fill mode.
 * GPencil: Refactor: Implement Onion skinning back.
 * GPencil: Refactor: Fix dot UV rotation at the end of strokes.
 * GPencil: Refactor: Remove image size from uv computation.
 * GPencil: Refactor: Add Stroke dot UV random rotation support.
 * GPencil: Refactor: Use stroke mask to cut dots shape.
 * GPencil: Refactor: Add dot stroke object rotation mode.

Focus on finishing the GPencil refactor.
 * Next week