User:Hypersomniac/Foundation/2020

Week 200-207 : 9th November - 31 December

  • Info

Due to personal circumstances, I was not very active during this period and took some extensive leave.

Week 199 : 2nd - 8th November

  • Info

Nothing special to report. The fix to T81752 may change the render result but the old behavior was clearly broken.

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

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

Week 198 : 26th - 1st November

  • Info

I was ill most of the week. I did some code review but that's all.

  • Next week

Bug Fixing.

Week 197 : 19th - 25th October

Left before, Right after the fixes
  • Info

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.

  • General development
    • CLOG: Use CLOG to for debug output 8442d6ca8a0 70cc0d7121a a4f883268ba.
    • DRW: Disable anisotropic filtering on utility textures 45400b32d0e.
    • DRW: Fix custom engine not being BGL safe cc3fdffbbe4.
    • EEVEE: Principle BSDF: Use multi-scatter switch for the glass variant b0f34eee30c.
    • EEVEE: Screen Space Raytrace: Fix unreported banding artifacts 0cbe6387e90.
    • EEVEE: Screen Space Reflection: Fix undefined behavior with invalid LOD 65a3195781c.
    • EEVEE: Screen Space Reflection: Improve contact reflections 27137c479cc.
    • EEVEE: Screen Space Reflection: Improve self intersection cases. b55c44e3eda.
    • Fix T73793 Walk navigation crosshair gets hidden behind objects e58285dc1dc.
    • Fix T81784 BGL: Gizmo glitch when using glEnable/glDisable 5a65305f899.
    • Fix T77658 EEVEE: Reflection Plane partially missing reflections 091b4336772 3cc2dc40b31.
    • Fix T81969 VSE: Wrong UI colorspace after scene strip update 36e8561298c.
    • GLTexture: Fix Anisotropic filtering affecting the standard mipmap samplers abc017ae0b5.
    • Volumes: Fix compilation when building without openVDB 257fe5a6e77.
  • Next week

Bug Fixing

Week 196 : 12th - 18th October

  • Info

I added a new option for the motion blur so that shutter position can be changed just like in cycles.

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

Bug Fixing.

Week 195 : 5th - 11th October

  • Info

I fixed some of the remaining issues from my changes from before my leave.

  • General development
    • Fix T80974 GPU: Wide Line emulation shader does not always works e90638b9118.
    • BGL: Workaround broken bgl usage caused by GPU refactor f12b0373f32 14c53c5018a 2d94b0d6b06.
    • Fix T79184: Specular highlight turns object black on some studio lights a81b059f1d9.
    • GPU: Fix assert when using gpu workaround and SSS + light renderpass 4ea3f3b3166.
    • GPU: Avoid blit operation modifying the wrong framebuffer during restore 76b15e338aa.
  • Next week

Bug sprint. Also some patches needs my attention.

Week 194 : 28th - 11th October

  • Info

Vacation.

Week 193 : 21st - 27th September

  • Info

Vacation.

Week 192 : 14th - 20th September

Rough metals with GGX (top) and GGX with multi-scattering approximation (bottom)
  • 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 D8932 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.

  • Next week

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

Week 191 : 7th - 13th September

  • Info

I eradicated all the remaining of OpenGL in the common codebase, IT'S DONE! Also Spent time stabilizing master after all the changes.

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 0f61b27e93f.
    • Fix remaining GL calls/type preventing from building due to recent cleanup 2e4569abbc6.
    • Fix T79538 Grease Pencil: Fill texture doesn't tile anymore f27d5e4f76f.
    • Fix T80023 Invisible objects or glitches with object 'in front' + 'X-ray' 3ee2ca0d3cd.
    • Fix T80327 UI: Glitches in UI drawing 8ff397b3b1a.
    • Fix T80603 Workbench: Inverted alpha when rendering ecfbc5fb55d.
    • GL: Add fallback debug layer 9d5977f5e1f.
    • GL: Wrap extension support inside GLContext 8d59f060ca7.
    • GLSamplers: Add debug object label dd04cba9439.
    • GPU: Add Image Load Store extension support 136bdb561b4.
    • GPU: Cleanup implementation casts d2e9de93b8d.
    • GPU: Fix wrong state before python callbacks bf3f4da9472.
    • GPU: Select Pick: Remove last GL call d4fd363d059.
    • GPUBatch: Do not unbind shader after drawing. 405a5d3bd7a.
    • GPUContext: Move GPUContext to gpu::Context for more consistency 48690d967a7.
    • GPUFramebuffer: Make GPU_framebuffer_read_depth more flexible b7a28b315a0.
    • GPUImmediate: Fix wrong resize of immBatchAtMost 48a99fab2b4.
    • GPUImmediate: Make activation / deactivation implicit ccc512cc619.
    • GPUOffscreen: Push the GL state before and after binding fe5efccd8fb.
    • GPUQuery: GL Backend isolation 5c2ac8520e0.
    • GPUState: Encapsulate glFlush and glFinish inside the GLContext 77f60a09310.
    • GPUState: Encapsulate glPixelStorei inside the GLStateManager 28ea459a61f.
    • GPUState: Fix missing changed program point size state 66078594d13.
    • GPUState: Fix Point Size issues 72f63ba7e9b.
    • GPUTexture: Remove unused functions and avoid GPU_texture_opengl_bindcode 33b25b6a9e8.
    • UI: Fix Icon drawing on MacOS 92fc32e48d4.
  • Next week

Wrap up the vulkan 2.91 targets and focus on bugs.

Week 190 : 31th - 6th September

  • Info

A lot of background work this week. I managed to finish almost all the GL isolation tasks from Template:PhabTask. Only a few small modules and stray GL enum / function call are left to convert / cleanup.

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

  • General development
    • Cleanup: GPUTexture: Remove use of GPU_texture_create_nD bac46069375.
    • Cleanup: Use GPUBatch for icon and area drawing 052538edc1f.
    • EEVEE: Try to allocate the lightcache and use fallback if failure a784e90be02.
    • EEVEE: Volumetric: Fix Mesa Compiler error 5ec0250df9d.
    • EEVEE: Volumetric: Fix missing UBO ccf476f8afa.
    • GHOST: Enable debug context on offscreen context too 058d29ed9a3.
    • Gizmo: Navigate: Make use of UI_draw_roundbox_4fv 7e3967ed37b 998b680e5bc.
    • GL: Fix two GLerror 4e06afb0a1d.
    • GLDebug: Trim NVidia debug output 9764d3e4dc1.
    • GLFramebuffer: Avoid calling method on a partially destroyed GLContext 7edd60b35b4.
    • GLImmediate: Use CL_CHECK_ERROR 7f95d780e87.
    • GLState: Add texture multibind and remove redundant binds 558e1158e7b.
    • GLState: Fix compilation warning on MSVC 581c35bea89.
    • GLState: Use unsigned long long instead of unsigned long for shifts 8c4f7e6d046.
    • GLTexture: Add back texture proxy check b100b77fda0.
    • GLTexture: Add direct state access support 64490bdedb7.
    • GLTexture: Add Feedback loop check 71872e3809f.
    • GLTexture: Add validation for empty slots before drawing 7d4adbdfaba.
    • GLTexture: Fix crash with --debug-gpu on windows + nvidia 158cea83b5b.
    • GLTexture: Fix undefined behavior when binding textures the first time 03b36abbe6f.
    • GPU: Move UBO binding validation to GL backend 53a806f6dff.
    • GPU: Rename gpu_extensions to gpu_capabilities 6b436b80a45.
    • GPUCapabilities: Isolate GL memory statistics 58353834f44.
    • GPUCapabilities: Isolate GL_STEREO to GLContext c5c6b5ddb31.
    • GPUDebug: Only enable resource checking in debug mode 65a593f6ef8.
    • GPUDebug: Reformat GL debug callbacks and move them to GL backend 82a197cc7f7.
    • GPUExtensions: GL backend isolation 171b36683a7.
    • GPUFramebuffer: Encapsulate single attachement clear db21c12abed.
    • GPUIndexBuf: GL backend Isolation 4ea93029c65.
    • GPUOffscreen: Remove scissor and viewport state tracking f1b10477c28.
    • GPUPlatform: GL backend isolation 360489c7516.
    • GPUTexture: Add skeleton of the new GLTexture class a92d77acf71.
    • GPUTexture: Add support for samplers 31c77a14af7.
    • GPUTexture: Bump GPU_TEX_MAX_FBO_ATTACHED 5de4525e393.
    • GPUTexture: Change texture creation API ab95cdaba97.
    • GPUTexture: GL Backend Isolation c766d9b9dc5.
    • GPUTexture: Implement back 3D texture resize cc0410193df.
    • GPUTexture: OCIO: Workaround new missing bind error checking 44b3985a180.
    • GPUTexture: Remove bind to edit calls f72c1c4547e.
    • GPUVertBuf: GL Backend Isolation c38debd39fa.
    • GPUVertBuf: Make GPUVertBuf private to the GPU module 7ffff04e490.
    • GPUVertBuf: Rename GPUVertBuf to VertBuf and add some getters bb2aeb45049.
    • Math Utils: Add bitscan 64bit version 6560a1c35e2 a442da62dc6.
    • OCIO: Make GLSL implementation use GPUUniformBuf to avoid debug errors a6185e4fa54.
    • OCIO: Use GPUTexture instead of OpenGL calls and remove gl dependency 541de201fe2.
    • Sequencer: Fix crash caused by stereo rendering fix d6d2897ef04.
  • Next week

Finish the leftovers and stabilize master.

Week 189 : 24th - 30th August

  • Info

This week I isolated the framebuffer and Immediate modules opengl backend (see #68990). I also took some time to fix some bugs.

  • General development
    • BLI_utildefines: Fix assignment in binary ops for ENUM_OPERATORS bb530a77b63.
    • Cleanup: GPUContext: Remove default_framebuffer_ f69c7a7ff99.
    • EEVEE: Fix broken rendering caused by SSR + Alpha blended material ad5d5d3f3bb.
    • Fix T79494 Refrence Image reflects object after source got deleted 999667a8c5f.
    • Fix T79811 MacOS: Edit Mode - vertex/edge/face selection is missing 949d92ad5d1.
    • Fix T79940 VSE Editor crash when opening a different scene as a strip 3fa12801325.
    • Fix T80138 Node Editor: Add Frame turns background gray 0299817e0ec.
    • GL: Add error checking function b43f4fda19b.
    • GPU: Fix compilation issue caused by rBb43f4fda19b9 9dd4d87f186.
    • GPUContext: Update internal framebuffer size when activating context 0f372f3966c.
    • GPUFrameBuffer: GL backend isolation f3a65a1b4aa 6e901fd8fc5.
    • GPUFramebuffer: Tag dirty after recursing downsample d98c722a5a8.
    • GPUFrameBuffer: Use debug name support 807817c0c4b.
    • GPUImmediate: GL backend isolation 1804eb57fd2.
    • GPUSelect: Avoid assert caused by clearing without a depth mask e51c428be64.
    • GPUShader: Improve shader compilation log dee665b462f.
    • GPUState: Fix missing writemask encapsulation ed7dbaa5a72.
    • GPUState: Move Scissor and Viewport state to framebuffer 8527d84d358.
    • GPUState: Move state limits getter to the area they belong 97f75ca87f7.
    • GPUUniformBuf: Fix debug name being shorter than release name 832a975c2cd.
    • T79811 MacOS: Edit Mode - vertex/edge/face selection is missing ed4c83f61fd.
    • WM: Remove 10year old workaround for buggy drivers 83f144b1769.
    • Workbench: Fix assert with sculpt in textured color mode 39a09b536ea.
  • Next week

Continue on the OpenGL backend isolation.

Week 188 : 17th - 23rd August

  • Info

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.

  • 2.90
    • Fix T79970 EEVEE: Camera Animation Breaks Motion Blur (Two Steps or More) 35ef42d967c.
    • GPUTexture: Extend CUBE_MAP_ARRAY_ARB proxy workaround to all Apple gpus aba46371a1c.
  • Next week

Fix regressions caused by the GL refactor and continue the refactor.

Week 186 : 3rd - 9th August

  • General development
    • EEVEE: LightCache: Add warning if the cache cannot be saved fce71a255cb.
    • EEVEE: LightCache: Prevent crash when using a lightcache too big 6be8b6af400.
    • EEVEE: Render: Fix regression caused by previous Motion blur fix 58909abc685.
    • Fix T77517 EEVEE: Collection Holdout doesn't work in 2.90 59861db763e.
    • Fix T78160 EEVEE: Motion Blur: Bug with Follow Path animation 3dcaca93a05.
    • Fix T78452 EEVEE: Motion Blur: Crash when using camera switching 4f59e4bddcb.
    • Fix T78520 EEVEE: No viewport update when changing material nodetree 574bd866c86.
    • Fix T78529 EEVEE: Blend file corrupted during save caused by high Cubemap Size 6390b530d06.
    • Fix T78954 EEVEE: Motion Blur: Bug with hair particles on linked objects 5249a813f22.
    • Fix T79213 EEVEE: rendering with motion blur can change current frame 3a522f7a7ff.
    • Fix T79370 EEVEE: Texture paint does not update during stroke f3e724b93d5.
    • Fix T79246 GPUShader: compile error on AWS Elastic Graphics 00162e6b7b0.
    • Fix T79509 Workbench: Object color mode broken if more than 4096 objects cf3431e0e86.
    • GPUTexture: Check PROXY textures for cubemap types d1b3da697d8.
    • GPUTexture: Improve debug print de947c5c507.
    • Workbench: Fix broken id pass 38e9a349def.
  • Next week

Still bugfixing.

Week 185 : 27th - 2nd August

  • Info

The effort continue to isolate the OpenGL specificity...This week we now have isolated everything to the GPU module.

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 D8444 and Vulkan ticket have been updated #68990.

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

  • Next week

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

Week 184 : 20th - 26th July

  • Info

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).

  • Next week

Continue the GL isolation.

Week 183 : 13th - 19th July

  • Info

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).

I also investigated EEVEE's motion blur crash #78321.

  • Next week

Week 182 : 6th - 12th July

  • Info

I've finish the initial point cloud rendering. We use geometry to avoid implementation complexity.

Also uploaded EEVEE GLSL refactor for review D8306.

  • General development
    • PointCloud: Initial rendering support for Workbench 058514aa0ab.
    • Fix T75943 EEVEE: Cubemaps shows black ff97545c50f.
    • Fix T78307 UI: Drawing artifacts in the Blender UI on macOS 630c6226e29.
  • Next week

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


Week 181 : 29th - 5th July

  • Info

I finished reviewing the remaining 150bug reports in the backlog and fixed a few of them.

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

To Be Decided...

Week 180 : 22nd - 28th June

  • Info

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.

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

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

Week 179 : 15th - 21st June

Post Process Motion blur only
Post Process Motion blur with 32 time steps
  • Info

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

  • General development
    • EEEVEE: Object Motion Blur: Initial Implementation f84414d6e14.
  • Next week

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

Week 178 : 8th - 14th June

  • Info

I've finished part 1 of the Motion Blur improvement D7297. Testing is welcome.

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

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

Week 177 : 1st - 7th June

  • Info

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.

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

  • General development
    • DRW: Always unbind texture after drawing 96eab087559.
    • DRW: Fix T77370: Redundant anti aliasing/blur effect ba5b303c888.
    • DRW: Remove automatic bind locations and use hardcoded locations for textures a1f9eebc0b5.
    • DRW: Remove defered uniform creation 38cfcdd51bd.
    • DRW: Remove use of builtin matrices and replace by common_view_lib d4f1efad005.
    • EEVEE: Refactor of eevee_material.c b18c2a3c413.
    • Fix T77315 Overlay: Selection Highlighting not working with complex scene 0f320295228.
    • GPU: ShaderInterface: Refactor to setup all uniform at creation time cecda64e2ea.
    • GPU: Texture: Remove multibind tracking ee4bafc63a0.
    • GPU: Texture: Replace internal sampler state by explicit state object bdda53fdb29.
    • GPUImmediate: Fix array uniform not working 55f8758b875.
    • GPUMaterial: Add support for different sampler state per image sampler 91cc1f38aef.
    • GPUMaterial: Fix shader compilation when using UDIM textures 15a24f3d7fe.
    • GPUMaterial: Rework/simplify image / environment texture filtering b2dcff4c21a 054923c8607.
    • GPUShader: Bind shader for interface creation beef67d1dfc.
    • GPUShaderInterface: Add Builtin Uniform blocks query 7534bbfa344.
    • GPUShaderInterface: Change builtin array to array of location/bind 10b34ad6972.
    • GPUShaderInterface: Fix out of bound reads 47eccac21c1.
    • GPUShaderInterface: Reduce creation time on some drivers. fd061f61c79.
    • GPUTexture: Add support for binding textures with custom sampler states 866e067d65c.
    • GPUTexture: Fix samplers configuration typo 47bdb288412.
    • GPUTexture: Make GPU_texture_unbind_all faster on newer opengl version b168c255aae.
  • Next week

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

Week 176 : 25th - 31st May

  • Info

While fixing last minute bugs, I did some cleanup of old areas to fix some long standing issues and complexities inside the drawing code. D7833 D7831 D7879

  • General development
    • EEVEE: Fix memory leak when using SSS render pass. 691a1e3357e.
    • GPencil: Reduce aliasing for subpixel lines ff1040c6fef.
    • DRW: Selection: Extend small object selection workaround to all overlays 39aa122a0e6.
    • DRW: Add DRW_shgroup_uniform_vec4_array_copy bf690ecd39a.
    • Fix T77130: Visually broken/stepped wireframe in object mode (regression) 1d2b89304ac.
    • Fix T72121: Measurements are being drawn incorrectly if one end is off screen 4a9a8611f2b.
  • Next week

Work on finishing EEVEE object motion blur.

Week 175 : 18th - 24th May

  • Info

Still fixing bugs for the release.

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

Bugfix.

Week 174 : 11th - 17th May

  • Info

Still fixing bugs for the release.

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

Bugfix.

Week 173 : 4th - 10th May

  • Info

I finished the EEVEE material refactor and it is up to review D7642.

  • General development
    • Fix T75958 Overlay: Blender Crashes when selecting without Depth Picking e6dd29ce6eb.
    • Fix T76045 Gizmo: line_width does not work in latest version 933c721ccbe.
    • Fix T76393 Gizmo: Crash on assert(batch->program_in_use == 0) 4d5af148522.
  • Next week

Focus on high priority bugs for the release.

Week 172 : 27th - 3rd May

  • Info

This week has been low in terms of output.

I started trying to fix #71055 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 7a809a7504d.

Then in an attempt to fix #T66231 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 7a809a7504d.
  • Next week

Finish the refactor and continue on bug fix.

Week 171 : 20th - 26th April

  • Info

Still bug fixing. Some high priority bug and one big usability issue on OSX has been fixed.

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

Continue on fixing the viewport related bugs.

Week 170 : 13th - 19th April

  • Info

Bug fixing week.

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

Continue on fixing the viewport related bugs.

Week 169 : 7th - 12th April

EEVEE motion blur fx improvement.png
  • Info

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.

  • General development
  • Next week

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

Week 168 : 30th - 6th April

  • Info

This week was focused on reworking on motion blur for EEVEE.

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 91b334b2f2f.
    • Fix T75144 Grease Pencil: Python generated strokes flicker and crash 2c9e27f209a.
    • Fix T74663 GPencil: Fills are Flickering on Nvidia 6428da84ed3.
    • GPencil: Fix overlay blend mode creating inverted colors af1e3b02708.
    • EEVEE: Bloom: Fix inverted source and base buffer 9371c051b15.
  • Motion Blur
    • EEVEE: Motion Blur: Rework object motion vector rendering 8cd42410c5d.
    • EEVEE: Motion Blur: Fix camera motion blur in render bd6abacc046.
    • EEVEE: Motion Blur: Fix rendering and center sample on current frame c42e68c4845.
    • EEVEE: Motion Blur: Make Temporal accumulation clear up the noise a83ad13c492.
    • EEVEE: Motion Blur: Fix missing motion vectors after first TAA sample 7ebb1f2ff36.
    • EEVEE: Motion Blur: Fix TAA reprojection 5de40f48385.
    • EEVEE: Motion Blur: Fix motion blur in render 52f8ba66cb3.
    • EEVEE: Object Motion Blur: Initial Implementation 536142e12fc.
  • Next week

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).

Week 167 : 23rd - 29th March

Wire aa before.png
Wire aa after.png
Hair alpha.png


  • Info

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

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) 0b57ecc665c bf3b0db785f.
    • Overlay: Outline: Fix unreported feedback loop when smooth wire is disabled d85026db15a.
    • GPU: Add workaround for faulty default attrib values on some drivers 56e0249489c.
    • Overlay: Fix crash caused by NULL passes 839f0cfa41f.
    • Overlay: Wireframe: New method to avoid zfighting with geometry e000dcb8490.
    • Overlay: Wireframe: Make facing ratio offset depends on gl_Position.w f3ea8cd6087.
    • Fix T75087 Workbench: DoF: Divide By Zero when antialiasing is disabled a0437c3f730.
    • Fix T73505 EEVEE: Group output node sockets default value not working 1b5b6a5da83.
  • Next week

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

Week 166 : 16th - 22nd March

  • Info

This was a week off but managed to review most of the patches assigned to me.

Week 165 : 9th - 15th March

  • Info

This week I've finished and merged both EEVEE's new reflection cubemaps and Workbench refactor. GPencil refactor has also been merged to master.

  • General development
    • EEVEE: Update Preview file with new lightcache f130c5ddb64.
    • EEVEE: Bump minimum probe level to make rough reflection more precise 8751af6d190.
    • EEVEE: Hair: Fix wrong color when using color attribute without actual data 27e0998a8a8.
    • EEVEE: Fix test crashing 33c6b269d11.
    • EEVEE: Replace octahedron reflection probe by cubemap array 7dd0be9554a.
    • Workbench: Fix default view not reset after drawing 7a19a996753.
    • Workbench Simplification Refactor c476c36e400.
    • GPencil: Use high precision float buffer for final rendering 9c5a120ba23.
    • GPencil: Fix T74625 Airbrush doesn't paint anything fa09b900c2f.
    • GPencil: Fix RNA range for uv_rotation 71712d828d9.
    • Overlay: Add antialiasing to particle sprites 29b405a3278.
    • Fix T74536: Grease pencil immediately crashes on macOS c971e812d5e.
    • Fix T74438: Overlay: Loose verts and particle not draw in some conditions 3912a2a227c.
  • Next week

I'll focus on patch reviews.

Week 164 : 2nd - 8th March

Transparent In-front (ghost) objects are now possible
  • Info

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

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 a4bfe626794.
    • GPencil: Modifier: Simplify: Fix modifier distance and length property feel ea4cc817d11.
    • GPencil: Modifier: Fix smooth factor range 3224950b2df.
    • GPencil: Modifier: Noise: Replace Full Stroke option by Noise Scale c64c5185d50.
    • GPencil: Fix potential out of bound read in Noise modifier c34596a3bbd.
    • GPencil: Modifier: Use unique seed for each stroke for Noise modifier 63f6b9c0181.
    • GPencil: Modifier: Cleanup Multiple Stroke modifier UI & code eb5a25f4bcc.
    • GPencil: Modifier: Rework Array modifier's RNG for better random variation 67408ac9399.
    • GPencil: Fix rebase error 7e0b48e58f5.
    • GPencil: Modifier: Change Noise Modifier behavior 908dfbf6182.
    • GPencil: Modifier: Improve UI of offset modifier 6cfac67df6b.
    • GPencil: Modifier: Change Thickness modifier behavior affe9e0b925.
    • GPencil: Modifier: Unlock range of Saturation and Value in HSV modifier 94172a5391b.
    • GPencil: Modifier: Fix UI of Tint and Opacity modifiers 33c0861db89.
    • GPencil: Fix stroke textures not working because of material chunk reuse 54798961ff3.
    • GPencil: Fix sbuffer rendering twice when using onion skinning ea16bb622a9.
    • GPencil: Fix occlusion bug when using multiple material 45647e2be32.
    • GPencil: Fix crash when rendering in new window b3bb17fe75c.
  • Workbench Refactor
    • Fix wrong materialId inside material setup resulting in buffer overflow. 4b2dd074aa5.
    • Workbench: Optimize out uneeded passes. 242538eba84.
    • Workbench: Add short explanation about the techniques used for rendering eff6fa00fd9.
    • Workbench: Refactor: Fix transparent depth pass optimization logic fa848f602a5.
    • DRW: Fix offscreen rendering e8f236406ce.
    • Workbench: Refactor: Disable Cavity rendering on infront objects 62ee14b04f6.
    • Workbench: Refactor: Draw transparent in wireframe mode. 8b76070a9f9.
    • Workbench: Refactor: Remove old unused code a713e72952a.
    • Workbench: Refactor: Add Volumetric support faf0a5e6286.
    • Workbench: Refactor: Antialiasing a459874e772.
    • Workbench: Refactor: Add Dof Support 91dfe40ef07.
    • Workbench: Refactor: Add outline support a102b7ebe5f.
    • Workbench: Refactor: Add cavity support aae2e1326fe.
    • Workbench: Refactor: Add Shadow support 606f1d80b39.
    • Workbench: Refactor: Add hair support + tweak the randomness of hairs color f426e71e091.
    • Workbench: Refactor: Add Infront support 62a7ac8f17e.
    • Workbench: Refactor: Add transparent (xray) support 73de98e6e09.
    • Workbench: Refactor: Only allocate id buffer if needed d36e63f8db4.
    • Workbench: Refactor: Add specular toggle support e34ce36ea4d.
    • Workbench: Refactor: Add matcap support 76a7ea0b713.
    • Workbench: Refactor: Add support for Flat shading 46f8367eaca.
    • Workbench: Refactor: Add support for texpaint & vertpaint 5759e2d6c40.
    • Workbench: Refactor: Support Material data e6e740f3176.
    • Workbench: Refactor: Code reorganization 1545c37cdb7.
    • BLI_memblock: Allow to use BLI_memblock_elem_get using only elem index b6e083358ee.
    • DRW: Manager: Expose resource handle getter 1e58e68c1a4.
    • DRW: Shader: Add shader library manager 616545b5cfa.
  • Next week

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

Week 163 : 24th - 1st March

Partially Blurred Background in lookdev mode
With Octahedral map Array (before)
With Cubemap Array (after)
  • Info

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.

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. 8af7d28e8c9.
    • EEVEE: LightCache: Fix error in texture readback and creation 81c96fa80dd.
    • EEVEE: Replace octahedron reflection probe by cubemap array a1026d75227.
    • EEVEE: LightCache: Reset lightcache info message on file load 681b47d2c7b.
    • EEVEE: Add version check on lightcache data 90f2d144992.
    • EEVEE: Use cubemap array to avoid shader texture filtering workaround 66bdd445513.
    • EEVEE: Deprecate old cache 895f104ced4.
    • EEVEE: Replace octahedron reflection probe by cubemap array e090b78f261.
    • GPU: Implement cubemap array support through extension bf09123baed.
  • General developement
    • Cleanup: Workbench: Remove checkerboard depth 8955b8b9920.
    • EEVEE: Fix memleak when G.is_break is set from another thread c26f470cfee.
    • EEVEE: Fix seams in reflection cubemap on low roughness 8885fb5929f.
    • EEVEE: Lookdev: Add support for partially blurred background 6e23433c1a7.
    • EEVEE: Lookdev: Fix cubemap resolution change not refreshing lightcache 19de81afe52.
    • EEVEE: Lookdev: Fix lookdev spheres positioning in viewport render 2ffd5302176.
    • GPU: Add Image property to allow high bitdepth support on a per image basis 4e9fffc2892.
    • Overlay: Edit Mode: Fix wireframes being brighter because of linear blend abb73649129.
    • Overlay: Fix overlays being washed out by render colors 190fd795a92.
    • Overlay: Fix wireframes being brighter because of color management 39d0bf90444.
    • Overlay: Remove Xray dithering noise ed21506f263.
  • Next week

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

Week 162 : 17th - 23th February

  • Info

This week has been mostly about fixing the regressions caused by the ColorManagement patch merged last week.

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 #74139

  • General development
    • ColorManagement: Dithering Improvement 852cdd476b5.
    • DRW: Fix facing reset when drawing with inverted camera 67cbce0b02f.
    • DRW: Fix wrong view transform used in solid mode if using workbench engine cc296ef1790.
    • DRW: New High Quality Normal & Tangent extract e82827bf6ed.
    • DRW: Support inverted view matrix f972a3c3145.
    • EEVEE: Fix default material disappearing when SSRefraction is enabled 19e63bb51e8.
    • EEVEE: Fix memleak when G.is_break is set from another thread c26f470cfee.
    • Fix T73748 Overlay: Infront disappearing/glitched while in Xray mode 00227edf4c1.
    • Fix T73793 Overlay: Walk navigation crosshair gets hidden behind objects b117b8e8182.
    • Fix T73876 Overlay: Armature: Pose bones display randomly f78c407aff0.
    • Fix T73914 Overlay: Unable to select bone in pose mode 9491e7d7c21.
    • Fix T74019 Eevee High Quality Normals causing pitch black faces 0c01ad93004.
    • GPU: Fix huge performance regression regarding instancing 77619f52740.
    • GPU: Limit Mesa workaround to older version 56d6666689f.
    • Overlay: Edit Mode: Fix wireframes being brighter because of linear blend abb73649129.
    • Overlay: Fix wireframes being brighter because of color management 39d0bf90444.
    • Overlay: Remove Xray dithering noise ed21506f263.
    • Overlay: Fixed blending issue when not using smooth wire a661ef42fbd.
  • Next week

Continue bug fixing. Work on polishing small features.

Week 161 : 10th - 16th February

  • Info

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.

  • General development
    • EEVEE: Shadow: Fix cascade shadowmap bias multiplicator 31ad86884cb.
    • Workbench: Fix depth of field background being glitchy eaea5c8904b.
    • Workbench: Fix premultiply alpha issue in transparent material d051dd01eda.
    • DRW: Fix viewport render always rendering with transparent background 180aff7b741.
    • DRW: Fix color management in material/rendered mode b6572c5430c.
    • DRW: Color Management improvement 804e90b42d7.
    • Overlay: Fix non meshes object disappearing if smooth wire is not enabled a40d9ce5535.
    • Fix T73442 Overlay: Wireframe infront buggy in material shading mode f1f2d9fe745.
    • GPencil: Opti: Merge AntiAliasing pass with compositing pass 46d0e93b547.
    • GPencil: Fix sbuffer stroke not overlapping with previous stroke 4f57d6db94b.
    • GPencil: Support XRay mode in solid and fix occlusion in wireframe mode 319e769ea37.
    • GPencil: Fix NaN result in divide blend mode e43fcee7782.
    • GPencil: Fix undefined behavior caused by stroke aspect commit a6da286694c.
    • GPencil: Fix alpha textured stroke buggy behavior f0d05b382a0.
    • GPencil: Add Dot aspect support back 9147e573310.
    • GPencil: Fix depth being written outside of masks boundaries a580934b7a0.
    • GPencil: Render: Fix crash when using region rendering 7c815db28d4.
    • GPencil: Remove unpredicatble behavior when rendering without depth pass dec3cbc818a.
    • GPencil: Refactor: Remove the hardcoded sRGB final transform for viewport 19d04ce3496.
    • GPencil: Refactor: Add per mask inversion capability d8c99ac34e6.
    • GPencil: Refactor: Add implementation of new mask list system 9ef18d8b36a.
  • Next week

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

Week 160 : 3rd - 9th February

  • Info

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.

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

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

Week 159 : 27th - 2nd February

  • Info

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.

  • General development
    • Displist: Add mikktspace tangent space generation for curve/text//surface objects 15350c70be8 c27d30f3eaf bcacf47cbcf.
    • EEVEE: Test maximum texture size before render. 8c5cb8359a3.
    • Fix T72593 Blender crashes when modifier change the material count 3fd4c88e3a2.
    • Fix T54422 FluidSim: ColorRamp set position does not update the viewport ecab41e44f7.
    • Fix T62730 Overlay: Selected edit hair points highlight is incorrect b2034c6ba24.
    • Fix T65146 EEVEE: Curve Texture Coordinates in Cycles and Eevee differ 65761487229.
    • Fix T66699 EEVEE: Material Preview "World" option doesn't work ed4cbde967a.
    • Fix T67060 EEVEE: Noise caused by disk lights 3d73609832d.
    • Fix T67552 EEVEE: Vector Curves node clamps maximum input value at 1.0 507a331f018.
    • Fix T69070 EEVEE: Volume shader glitch if object as axis with 0.0 scale 0366c46ec64.
  • Viewport Color Management Refactor
    • Overlay: Fix edit text overlay invert logic op not working c0675868a3f.
    • Overlay: Armature: Fix look regression because of linear space rendering f9914a8ef99.
    • Overlay: Put all colors inside draw_common.c for correct colormanagment. fe327c0970a.
    • Overlay: Support viewport background modes a7ac3a3ee3c.
    • Overlay: Move Alt+B clipping bounds display from workbench to overlay a3ee3b8f245.
    • Render API: Make external engine render in linear space for the viewport b180c8b8475.
    • OCIO: Use GroupTransform to avoid doing 3 transforms instead of 2 089b55885c2.
  • Next week

Continue bug fixing.

Week 158 : 20th - 26th January

  • Info

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.

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 c5436883c66.
    • Fix T71374 EEVEE: Fix Node group socket not converting inputs as in Cycles c2e21b23296.
    • Fix T67050 Overlay: Forcefield limits are not dashed 170844135aa.
    • Fix T66956 EEVEE: NaN produced by bad geometry mess with the DoF 3cd32c376db.
    • Fix T73335 Overlay: Light Distance line does not represent custom distance 6dcbc3cd5aa.
    • Overlay: Improve Outline diagonal Antialiasing 335930ab4ef.
  • Viewport Color Management Refactor
    • DRW: Color Management: Do some rearangement of the draw code 05dda64cf29.
    • DRW: Color Management: Fix ghosting with cycles. bef1c0d11e0.
    • DRW: Color Management: Fix viewport render pipeline be68e899488.
    • DRW: Color Management: Rework code to accept new color transform needed 281fb484408.
    • DRW: Color Management: Move color management to the GPUViewport adf98e6360d.
    • DRW: Color Management: Remove DrawEngineType draw_background function 7d25c746152.
    • GPU: Add sRGB framebuffer support 73f612fa3bd.
    • GPUViewport: Add fallback colormanagment 2616a0a9d6e.
    • GPUViewport: Fix image uv editor. 5db185d1c48.
    • OCIO: Improve/Cleanup Implementation a0283355fcf.
    • OCIO: Support overlay blending in linear colorspace in GLSL backend 419a818eec8.
    • Overlay: Add other background types (checker and gradient) e18f0a4cfb5.
    • Overlay: Cleanup Image background implementation e9411b8ccf2.
  • Next week

Continue bug fixing.

Week 157 : 13th - 19th January

  • Info

General bug tracker week. Some long standing bugs have been solved.

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

Continue bug fixing duty.

Week 156 : 6th - 12th January

  • Info

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.

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 1d25838eb41.
    • GPencil: Refactor: Add back guides and control points overlays ae529faa87e.
    • GPencil: Refactor: Add canvas grid 3b27d75f451.
    • GPencil: Refactor: Add fill vertex color suppport 2e609a45822.
    • GPencil: Refactor: Add gpencil case to BKE_object_is_in_editmode b33c61a4afd.
    • GPencil: Refactor: Add outline overlay 981c49ff4c2.
    • GPencil: Refactor: Add support for GPencil wireframes de4c23384fd.
    • GPencil: Refactor: Add Weight Paint support 1762cd34125.
    • GPencil: Refactor: Disable GPencil Outline in edit mode d333b0c6cb3.
    • GPencil: Refactor: Don't draw Gpencil objects if drawtype is not solid 2942e7eb03c.
    • GPencil: Refactor: Edit Mode support. a1285eb4d80.
    • GPencil: Refactor: Edit Mode: Add support for minor features 55f38e453c9.
    • GPencil: Refactor: Enable gpencil engine if xray is not used 5d6eb25858b.
    • GPencil: Refactor: Enable Vertex color mode in vertex paint 00feefba102.
    • GPencil: Refactor: Fix depth sorting with workbench render bd0809da61c.
    • GPencil: Refactor: Make Lighting effect only happen in lookdev & render mode bc774caaac5.
    • GPencil: Refactor: Make sbuffer batches managment more robust 5196533f91f.
    • GPencil: Refactor: Make Texture UV transform behave like normal 3D ones 1da03b2e806.
    • GPencil: Refactor: Move batch cache functions to DRW module 41cef139adc.
    • GPencil: Refactor: Move iterator to BKE 154fa8b8536.
    • GPencil: Refactor: Move vertex shader logic to gpencil_common_lib.glsl fb514173709.
    • GPencil: Refactor: Overlay: Add hide selection option back 6ac1f2eff25.
    • Gpencil: Refactor: Overlay: Fix crash when no gpencil object is active d9f0885050c.
    • GPencil: Refactor: Remove 3D stroke offset 80109a69eae.
    • GPencil: Refactor: Remove last occurence of stl->storage b6ff712af2b.
    • GPencil: Refactor: Remove per layer random color jitter in wireframe 50da5bf2cbe.
    • GPencil: Refactor: Replace Stroke Miter break by rounded corners b83692e11a3.
    • GPencil: Refactor: Rewrite the render pipeline 42ad3282c5c.
    • Gpencil: Refactor: Support per layer random color in wireframe overlay 938a26be8fe.
    • GPencil: Refactor: Support solid mode color modes 710601b5d01.
    • GPencil: Refactor: Use drawcall matrices instead of custom one 93c9347e9c4.
    • Overlay: Allow alpha blend passes to write to the line buffer 31700ba657b.
  • Next week

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

Week 155 : 30th - 5th January

  • Info

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.

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 0f7bde8f6f5.
    • GPencil: Refactor: Fix black GPobjects in hero files eca698867c8.
    • GPencil: Refactor: Add stroke fast drawing 94d228a4e4c.
    • GPencil: Refactor: Implement sbuffer stroke drawing 8a1cc77fdd1.
    • GPencil: Refactor: Add back gradient fill mode 384f870f4dc.
    • GPencil: Refactor: Implement Onion skinning back 589a889d232 f0ba75639a9.
    • GPencil: Refactor: Fix dot UV rotation at the end of strokes a6d30c064df.
    • GPencil: Refactor: Remove image size from uv computation 6a51a610743.
    • GPencil: Refactor: Add Stroke dot UV random rotation support 549a547f548.
    • GPencil: Refactor: Use stroke mask to cut dots shape 0d8a4528f72.
    • GPencil: Refactor: Add dot stroke object rotation mode 3fc6f6c5920.
  • Next week

Focus on finishing the GPencil refactor.