Note: This is an archived version of the Blender Developer Wiki (archived 2024). The current developer documentation is available on developer.blender.org/docs.

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 998ae29549.
    • Fix T80842 Grease Pencil: Subtract mode is not working as expected 15eec7f8b9.
    • Fix T81752 EEVEE: Camera Motion Blur is not blending steps properly aae60f0fec.
    • Fix T73126 EEVEE: light probe baking ignores indirect bounces from SSS 568dc2665e.
    • Fix T82385 EEVEE: Alpha Clip shadows actually using Alpha Hashed shadows 96e8dadda0.
    • GPU: Fix valgrind warnings about branching on uninitialized variables c3e832144b.
    • GL: Fix default framebuffers being bound using srgb 313086e212.
  • 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 8442d6ca8a 70cc0d7121 a4f883268b.
    • DRW: Disable anisotropic filtering on utility textures 45400b32d0.
    • DRW: Fix custom engine not being BGL safe cc3fdffbbe.
    • EEVEE: Principle BSDF: Use multi-scatter switch for the glass variant b0f34eee30.
    • EEVEE: Screen Space Raytrace: Fix unreported banding artifacts 0cbe6387e9.
    • EEVEE: Screen Space Reflection: Fix undefined behavior with invalid LOD 65a3195781.
    • EEVEE: Screen Space Reflection: Improve contact reflections 27137c479c.
    • EEVEE: Screen Space Reflection: Improve self intersection cases. b55c44e3ed.
    • Fix T73793 Walk navigation crosshair gets hidden behind objects e58285dc1d.
    • Fix T81784 BGL: Gizmo glitch when using glEnable/glDisable 5a65305f89.
    • Fix T77658 EEVEE: Reflection Plane partially missing reflections 091b433677 3cc2dc40b3.
    • Fix T81969 VSE: Wrong UI colorspace after scene strip update 36e8561298.
    • GLTexture: Fix Anisotropic filtering affecting the standard mipmap samplers abc017ae0b.
    • Volumes: Fix compilation when building without openVDB 257fe5a6e7.
  • 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 14f490b932.
    • Fix T81633 Workbench: TAA never resolve when enabling both X-Ray and cavity adc0291061.
    • Fix T81004 Python: Images drawn in the Sequence Editor have wrong colors 57de568604.
    • GL: FrameBuffer: Set GL_FRAMEBUFFER_SRGB if needed 3271074120.
    • EEVEE: Motion Blur: Add shutter position option b7afcdff7b.
    • Fix T80086 EEVEE: Motion Blur: Subframe not taken into account ed96c59c20.
  • 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 e90638b911.
    • BGL: Workaround broken bgl usage caused by GPU refactor f12b0373f3 14c53c5018 2d94b0d6b0.
    • Fix T79184: Specular highlight turns object black on some studio lights a81b059f1d.
    • GPU: Fix assert when using gpu workaround and SSS + light renderpass 4ea3f3b316.
    • GPU: Avoid blit operation modifying the wrong framebuffer during restore 76b15e338a.
  • 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.

  • General development
    • Cleanup: DNA_fluid_types: Add DNA member name before enum declarations 75b52da826.
    • Cleanup: GLShader: Use span and default constructor instead of vector(0) fc2ce8495e.
    • Cleanup: GPUDebug: Use Vector instead of custom stack 2da4e2be0a.
    • EEVEE: Add support for GGX Multi-scatter 6f3c279d9e 7b9e47a35e.
    • Fix T75061 Grease Pencil: MacOS: broken Gradient and Texture 6624c4c225.
    • Fix T78653 Workbench: Broken Depth of Field in Viewport (Mac OSX) fa81e36f65 7710de26d0 26a827f254.
    • Fix T79315 Normals Overlays broken with hidden geometry 1fb7f36acb.
    • Fix T79557 EEVEE: Normalize in vector math node is not null vector safe aa2e978bd8.
    • Fix T80107 Selection: Regression in Box selection fafc1fbd7f.
    • Fix T80193 Sequencer: Crash on float images when OCIO GLSL shader can't be used 13c7df1054.
    • Fix T80681 Wireframe is not visible on square planes with 16384 quads cd849076d2.
    • Fix T80782 GPU: Curve editing widget point size broken after recent commit f1e34ee7fa.
    • GL: Fix linking errors being useless. cfd9c0c199.
    • GL: Make use of the new debug layer ac63afca7d.
    • GPU: Add debug groups a040e8df36 0dd44f4647 926b426073.
    • GPUDebug: Add function to test if inside a debug group 8eda18f789.
    • GPUImmediate: Add system wide workaround for wide line 6ade522f27 649b0ccac8 ea72c5d69b.
    • GPUShader: Add meaningful debug names to builtin shaders 1858535a10.
  • 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 0f61b27e93.
    • Fix remaining GL calls/type preventing from building due to recent cleanup 2e4569abbc.
    • Fix T79538 Grease Pencil: Fill texture doesn't tile anymore f27d5e4f76.
    • Fix T80023 Invisible objects or glitches with object 'in front' + 'X-ray' 3ee2ca0d3c.
    • Fix T80327 UI: Glitches in UI drawing 8ff397b3b1.
    • Fix T80603 Workbench: Inverted alpha when rendering ecfbc5fb55.
    • GL: Add fallback debug layer 9d5977f5e1.
    • GL: Wrap extension support inside GLContext 8d59f060ca.
    • GLSamplers: Add debug object label dd04cba943.
    • GPU: Add Image Load Store extension support 136bdb561b.
    • GPU: Cleanup implementation casts d2e9de93b8.
    • GPU: Fix wrong state before python callbacks bf3f4da947.
    • GPU: Select Pick: Remove last GL call d4fd363d05.
    • GPUBatch: Do not unbind shader after drawing. 405a5d3bd7.
    • GPUContext: Move GPUContext to gpu::Context for more consistency 48690d967a.
    • GPUFramebuffer: Make GPU_framebuffer_read_depth more flexible b7a28b315a.
    • GPUImmediate: Fix wrong resize of immBatchAtMost 48a99fab2b.
    • GPUImmediate: Make activation / deactivation implicit ccc512cc61.
    • GPUOffscreen: Push the GL state before and after binding fe5efccd8f.
    • GPUQuery: GL Backend isolation 5c2ac8520e.
    • GPUState: Encapsulate glFlush and glFinish inside the GLContext 77f60a0931.
    • GPUState: Encapsulate glPixelStorei inside the GLStateManager 28ea459a61.
    • GPUState: Fix missing changed program point size state 66078594d1.
    • GPUState: Fix Point Size issues 72f63ba7e9.
    • GPUTexture: Remove unused functions and avoid GPU_texture_opengl_bindcode 33b25b6a9e.
    • UI: Fix Icon drawing on MacOS 92fc32e48d.
  • 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 bac4606937.
    • Cleanup: Use GPUBatch for icon and area drawing 052538edc1.
    • EEVEE: Try to allocate the lightcache and use fallback if failure a784e90be0.
    • EEVEE: Volumetric: Fix Mesa Compiler error 5ec0250df9.
    • EEVEE: Volumetric: Fix missing UBO ccf476f8af.
    • GHOST: Enable debug context on offscreen context too 058d29ed9a.
    • Gizmo: Navigate: Make use of UI_draw_roundbox_4fv 7e3967ed37 998b680e5b.
    • GL: Fix two GLerror 4e06afb0a1.
    • GLDebug: Trim NVidia debug output 9764d3e4dc.
    • GLFramebuffer: Avoid calling method on a partially destroyed GLContext 7edd60b35b.
    • GLImmediate: Use CL_CHECK_ERROR 7f95d780e8.
    • GLState: Add texture multibind and remove redundant binds 558e1158e7.
    • GLState: Fix compilation warning on MSVC 581c35bea8.
    • GLState: Use unsigned long long instead of unsigned long for shifts 8c4f7e6d04.
    • GLTexture: Add back texture proxy check b100b77fda.
    • GLTexture: Add direct state access support 64490bdedb.
    • GLTexture: Add Feedback loop check 71872e3809.
    • GLTexture: Add validation for empty slots before drawing 7d4adbdfab.
    • GLTexture: Fix crash with --debug-gpu on windows + nvidia 158cea83b5.
    • GLTexture: Fix undefined behavior when binding textures the first time 03b36abbe6.
    • GPU: Move UBO binding validation to GL backend 53a806f6df.
    • GPU: Rename gpu_extensions to gpu_capabilities 6b436b80a4.
    • GPUCapabilities: Isolate GL memory statistics 58353834f4.
    • GPUCapabilities: Isolate GL_STEREO to GLContext c5c6b5ddb3.
    • GPUDebug: Only enable resource checking in debug mode 65a593f6ef.
    • GPUDebug: Reformat GL debug callbacks and move them to GL backend 82a197cc7f.
    • GPUExtensions: GL backend isolation 171b36683a.
    • GPUFramebuffer: Encapsulate single attachement clear db21c12abe.
    • GPUIndexBuf: GL backend Isolation 4ea93029c6.
    • GPUOffscreen: Remove scissor and viewport state tracking f1b10477c2.
    • GPUPlatform: GL backend isolation 360489c751.
    • GPUTexture: Add skeleton of the new GLTexture class a92d77acf7.
    • GPUTexture: Add support for samplers 31c77a14af.
    • GPUTexture: Bump GPU_TEX_MAX_FBO_ATTACHED 5de4525e39.
    • GPUTexture: Change texture creation API ab95cdaba9.
    • GPUTexture: GL Backend Isolation c766d9b9dc.
    • GPUTexture: Implement back 3D texture resize cc0410193d.
    • GPUTexture: OCIO: Workaround new missing bind error checking 44b3985a18.
    • GPUTexture: Remove bind to edit calls f72c1c4547.
    • GPUVertBuf: GL Backend Isolation c38debd39f.
    • GPUVertBuf: Make GPUVertBuf private to the GPU module 7ffff04e49.
    • GPUVertBuf: Rename GPUVertBuf to VertBuf and add some getters bb2aeb4504.
    • Math Utils: Add bitscan 64bit version 6560a1c35e a442da62dc.
    • OCIO: Make GLSL implementation use GPUUniformBuf to avoid debug errors a6185e4fa5.
    • OCIO: Use GPUTexture instead of OpenGL calls and remove gl dependency 541de201fe.
    • Sequencer: Fix crash caused by stereo rendering fix d6d2897ef0.
  • 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 bb530a77b6.
    • Cleanup: GPUContext: Remove default_framebuffer_ f69c7a7ff9.
    • EEVEE: Fix broken rendering caused by SSR + Alpha blended material ad5d5d3f3b.
    • Fix T79494 Refrence Image reflects object after source got deleted 999667a8c5.
    • Fix T79811 MacOS: Edit Mode - vertex/edge/face selection is missing 949d92ad5d.
    • Fix T79940 VSE Editor crash when opening a different scene as a strip 3fa1280132.
    • Fix T80138 Node Editor: Add Frame turns background gray 0299817e0e.
    • GL: Add error checking function b43f4fda19.
    • GPU: Fix compilation issue caused by rBb43f4fda19b9 9dd4d87f18.
    • GPUContext: Update internal framebuffer size when activating context 0f372f3966.
    • GPUFrameBuffer: GL backend isolation f3a65a1b4a 6e901fd8fc.
    • GPUFramebuffer: Tag dirty after recursing downsample d98c722a5a.
    • GPUFrameBuffer: Use debug name support 807817c0c4.
    • GPUImmediate: GL backend isolation 1804eb57fd.
    • GPUSelect: Avoid assert caused by clearing without a depth mask e51c428be6.
    • GPUShader: Improve shader compilation log dee665b462.
    • GPUState: Fix missing writemask encapsulation ed7dbaa5a7.
    • GPUState: Move Scissor and Viewport state to framebuffer 8527d84d35.
    • GPUState: Move state limits getter to the area they belong 97f75ca87f.
    • GPUUniformBuf: Fix debug name being shorter than release name 832a975c2c.
    • T79811 MacOS: Edit Mode - vertex/edge/face selection is missing ed4c83f61f.
    • WM: Remove 10year old workaround for buggy drivers 83f144b176.
    • Workbench: Fix assert with sculpt in textured color mode 39a09b536e.
  • 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) 35ef42d967.
    • GPUTexture: Extend CUBE_MAP_ARRAY_ARB proxy workaround to all Apple gpus aba46371a1.
  • 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 fce71a255c.
    • EEVEE: LightCache: Prevent crash when using a lightcache too big 6be8b6af40.
    • EEVEE: Render: Fix regression caused by previous Motion blur fix 58909abc68.
    • Fix T77517 EEVEE: Collection Holdout doesn't work in 2.90 59861db763.
    • Fix T78160 EEVEE: Motion Blur: Bug with Follow Path animation 3dcaca93a0.
    • Fix T78452 EEVEE: Motion Blur: Crash when using camera switching 4f59e4bddc.
    • Fix T78520 EEVEE: No viewport update when changing material nodetree 574bd866c8.
    • Fix T78529 EEVEE: Blend file corrupted during save caused by high Cubemap Size 6390b530d0.
    • Fix T78954 EEVEE: Motion Blur: Bug with hair particles on linked objects 5249a813f2.
    • Fix T79213 EEVEE: rendering with motion blur can change current frame 3a522f7a7f.
    • Fix T79370 EEVEE: Texture paint does not update during stroke f3e724b93d.
    • Fix T79246 GPUShader: compile error on AWS Elastic Graphics 00162e6b7b.
    • Fix T79509 Workbench: Object color mode broken if more than 4096 objects cf3431e0e8.
    • GPUTexture: Check PROXY textures for cubemap types d1b3da697d.
    • GPUTexture: Improve debug print de947c5c50.
    • Workbench: Fix broken id pass 38e9a349de.
  • 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 058514aa0a.
    • Fix T75943 EEVEE: Cubemaps shows black ff97545c50.
    • Fix T78307 UI: Drawing artifacts in the Blender UI on macOS 630c6226e2.
  • 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 062a843bfb.
    • EEVEE: Shadows: Remove 1 pixel padding to the cubemap 755c5c6e4c.
    • Fix T74024 Faces missing, weird faces added 6d8b6aec18.
    • Fix T74220 Workbench: Volumetric Color Mapping not ignoring alpha value 9feb0d5f2e.
    • Fix T74290 Overlay: Face Dots in front (X-ray) Visual Glitch 81fb08ad57.
    • Fix T76480 UI: Proportional Editing Color too Shallow on 2.9a 9d80e6a6bb.
    • Fix T76806 UV Editor: Display as Outline do not work on macOS afd976a3b4.
    • Fix T77559 Avoid wrong ob->imat leading to several bugs 5a13f682ee.
    • Fix T77641 Sculpt mode performance regression in 2.83 aeb4792044.
    • Fix T77069 EEVEE: Mix shader with holdout & transparent BSDF fails 981d7381cd.
    • Fix T77549 GPUTexture: Crash caused by NULL parameter to glBindTextures... df8847de6d.
    • Fix T61573 GPencil: Annotation thickness doesn't work with on OSX bd6cc282d2.
    • Fix T67587 Overlay: WeightPaint color blends with background in wireframe mode 4723644e7f.
    • Fix T75483 Overlay: 3D Text selection obscures text 6c7d0aebcb.
    • Fix T76229 Overlay: Sulpt overlay not working if object use in-front option 8bee200e2f.
    • Fix T76337 Overlay: Wireframe: x-ray doesn't deactivate when set to 0 e0ef574c40.
    • Fix T77655 Overlay: Edit mode + wire drawtype + infront not transparent e9d1d1f725.
    • Fix T77780 Overlay: Weight colors are not in render in the right colorspace 11a1ddfd30.
    • Fix T78124 Overlay: Image: Camera background image transparency not working 0961ce04cb.
    • GPUOffScreen: Remove the sample parameter 35481fde40.
  • 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 6d8b6aec18.
    • Fix T77549 GPUTexture: Crash caused by NULL parameter to glBindTextures... df8847de6d.
    • Fix T78237 UI: NLA colors black and broken 46815753cf.
    • Fix T70193 Overlay: Grid floor disappears for orthographic camera 230b9eac69.
    • Fix T66934 Overlay: "Outline Selected" overlay doesnt affect armatures c26abd1c29.
    • Fix T67319 DRW: Large objects gets incorrectly culled ec7510b458.
    • Fix T71539 EEVEE: Still redraw during playback when it shouldn't c9d94c2aba.
    • Fix T67741 EEVEE: World update don't update lightcache if one viewport uses lookdev eace5903cb.
    • Fix T78215 EEVEE: incorrect Render Passes results when using motion blur 2ad8e16c2d.
    • Fix T78073 EEVEE: new motion blur and overscan produce wrong render c78b831e69.
    • Fix T77672 EEVEE: Reflections with reflection plane broken (regression) 9b3dfbe651.
    • Fix T78190 EEVEE: Render passes broken in final render be0622533d.
    • Fix T62961 EEVEE: Viewport refresh when hovering widgets d82c3d8615.
    • EEVEE: Fix crash when using motion blur without postfx blur a6c59863d3.
    • EEVEE: Motion Blur: Add accumulation motion blur for better precision 439b40e601.
    • UI: Widget: Replace geometry by fragment shader drawing 15dda0115c.
    • UV Editor: Fix Vertex Overlay color not being color managed bfaa41c00d.
    • Fix T62917 UV editor: Edge overlay not shown when edge overlay type is Dash 336a8f283f.
  • 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 f84414d6e1.
  • 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 fd14d1cceb.
    • Fix T77586 EEVEE: UDIM image Texture doesn't Display properly 7e43bbb790.
    • Fix T77599 Image UV editor use linear interpolation d12f6a90b1.
    • Fix T76273 Glitches caused by glCopyImageSubData on windows + intel gpu f71a2fc6c3.
    • Workbench: Use eGPUSamplerState to change texture sampling behavior 1f6d1213d2.
  • 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 96eab08755.
    • DRW: Fix T77370: Redundant anti aliasing/blur effect ba5b303c88.
    • DRW: Remove automatic bind locations and use hardcoded locations for textures a1f9eebc0b.
    • DRW: Remove defered uniform creation 38cfcdd51b.
    • DRW: Remove use of builtin matrices and replace by common_view_lib d4f1efad00.
    • EEVEE: Refactor of eevee_material.c b18c2a3c41.
    • Fix T77315 Overlay: Selection Highlighting not working with complex scene 0f32029522.
    • GPU: ShaderInterface: Refactor to setup all uniform at creation time cecda64e2e.
    • GPU: Texture: Remove multibind tracking ee4bafc63a.
    • GPU: Texture: Replace internal sampler state by explicit state object bdda53fdb2.
    • GPUImmediate: Fix array uniform not working 55f8758b87.
    • GPUMaterial: Add support for different sampler state per image sampler 91cc1f38ae.
    • GPUMaterial: Fix shader compilation when using UDIM textures 15a24f3d7f.
    • GPUMaterial: Rework/simplify image / environment texture filtering b2dcff4c21 054923c860.
    • GPUShader: Bind shader for interface creation beef67d1df.
    • GPUShaderInterface: Add Builtin Uniform blocks query 7534bbfa34.
    • GPUShaderInterface: Change builtin array to array of location/bind 10b34ad697.
    • GPUShaderInterface: Fix out of bound reads 47eccac21c.
    • GPUShaderInterface: Reduce creation time on some drivers. fd061f61c7.
    • GPUTexture: Add support for binding textures with custom sampler states 866e067d65.
    • GPUTexture: Fix samplers configuration typo 47bdb28841.
    • GPUTexture: Make GPU_texture_unbind_all faster on newer opengl version b168c255aa.
  • 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. 691a1e3357.
    • GPencil: Reduce aliasing for subpixel lines ff1040c6fe.
    • DRW: Selection: Extend small object selection workaround to all overlays 39aa122a0e.
    • DRW: Add DRW_shgroup_uniform_vec4_array_copy bf690ecd39.
    • Fix T77130: Visually broken/stepped wireframe in object mode (regression) 1d2b89304a.
    • Fix T72121: Measurements are being drawn incorrectly if one end is off screen 4a9a8611f2.
  • 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 af3a55bb1b.
    • UI: Fix Wideline AA for timeline e15ffc0c54 42d77fbea1.
    • GPU: Attempt to fix Crash on startup with Intel HD Graphics 620/630 13125e0948.
    • Fix T76080 Workbench: Background Glitches caused by Screen Cavity effect a5a069c272.
    • Fix T66916 UI: Wrong information in Status bar after cancelling a render 5201bc9dd4.
    • Fix T76564 Curve: Missing orco cause mesh to not render fa270a37e8.
    • Fix T73847 Overlay: Camera orthographic scale moves background image a4cbacacbf.
    • Fix T76730 DRW: Sorting of empty shading groups. 6eb00fb02e.
    • Fix T76828 GPencil: Toggle Caps doesn't work cb8d8335b2.
    • Fix T76909 GPencil: Layers with mask(s) invisible when using "in front" 93b5682444.
  • Next week

Bugfix.

Week 174 : 11th - 17th May

  • Info

Still fixing bugs for the release.

  • General development
    • DRW: Fix debug performance stats e3861b949a.
    • Fix T76113 GPU: Crash closing file browsers with AMD GPUs ac1a6565df.
    • Fix T76126 Overlay: Glitch when hiding Nurb vertices c233271b0b.
    • Fix T76168 Workbench: Shadows behind a culled backface are inverted 5940485369.
    • Fix T76216 Workbench: Glicht when switching from quad views to normal view a1363f74bf.
    • Fix T76413 Gizmos: Trackball's preselection highlighting is too bright 0909b564a9.
    • Fix T76476 EEVEE: Invalid Vector to Float conversion for nodegroups 6716baa1f7.
    • Overlay: Replace depth blitting by GPU_texture_copy 365e9cb6aa.
    • UI: Fix Unreported missing background for azone arrow ada03e8673.
  • 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 e6dd29ce6e.
    • Fix T76045 Gizmo: line_width does not work in latest version 933c721ccb.
    • Fix T76393 Gizmo: Crash on assert(batch->program_in_use == 0) 4d5af14852.
  • 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 7a809a7504.

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 7a809a7504.
  • 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 133bf05b18.
    • Fix T75910 Overlay: Face Orientation not working for "In Front" objects 84e40ee846.
    • Workbench: Fix weight paint overlay and wireframe for infront object a1b1f2acd4.
    • GPU: Add better support for texture copy fallback 05b94c9c54.
    • GPU: Add Polyline shader (wide line emulation) d712f1f83a.
    • Fix T73741 Grid Floor render on top of Wireframe objects d0ff3434cf.
    • Fix T74173 Assert when scaling camera in viewport to zero 54e1b63567.
    • Fix T72506 EEVEE: Collection Holdout propagates accross material instances 40f2c92460.
    • Workbench: Use GPU_texture_copy instead of GPU_framebuffer_blit for TAA a68bd94d11.
    • GPU: Add GPU_texture_copy f7753bf97f.
  • 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 2816b22b38.
    • Fix T74199 Overlay: Turning off overlays also hides edges 156319d2b3.
    • Fix T73815 Overlay: Z axis line doesn't show alone on the workspace 842e817bf7.
    • Fix T75832 DRW Hair: Crash caused by shader compilation b7d603b41c.
    • Fix T74805 Workbench: Back faces flicker with Auto Depth is enabled a250be980a.
    • Overlay: Fix unreported bug: Edit mode overlays drawing during auto depth 96825403a6.
    • Workbench: Fix unreported bug: garbage viewport when changing AA settings 95a018aa32.
    • Fix T74964 Stereo 3D anaglyph and interlace not working 2a68b41b7d.
    • Fix T75750 Image Editor: Rendered result is much brighter than in viewport f0221ff667.
    • Fix T75751 Overlay: Clipping Region crashes Blender e0d7b6c78d.
    • Fix T75443 Color Management: Use after free crash when using curve mapping e08ac50a5c.
    • GPUShader: Implement workaround for gizmo drawing on sRGB framebuffer 21c658b718.
  • 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
    • EEVEE: Motion Blur: Improve post processing 3651ebb1db.
    • EEVEE: Motion Blur: Fix shutter delta 7aef17d361.
  • 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 91b334b2f2.
    • Fix T75144 Grease Pencil: Python generated strokes flicker and crash 2c9e27f209.
    • Fix T74663 GPencil: Fills are Flickering on Nvidia 6428da84ed.
    • GPencil: Fix overlay blend mode creating inverted colors af1e3b0270.
    • EEVEE: Bloom: Fix inverted source and base buffer 9371c051b1.
  • Motion Blur
    • EEVEE: Motion Blur: Rework object motion vector rendering 8cd42410c5.
    • EEVEE: Motion Blur: Fix camera motion blur in render bd6abacc04.
    • EEVEE: Motion Blur: Fix rendering and center sample on current frame c42e68c484.
    • EEVEE: Motion Blur: Make Temporal accumulation clear up the noise a83ad13c49.
    • EEVEE: Motion Blur: Fix missing motion vectors after first TAA sample 7ebb1f2ff3.
    • EEVEE: Motion Blur: Fix TAA reprojection 5de40f4838.
    • EEVEE: Motion Blur: Fix motion blur in render 52f8ba66cb.
    • EEVEE: Object Motion Blur: Initial Implementation 536142e12f.
  • 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 e000dcb849. 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) 0b57ecc665 bf3b0db785.
    • Overlay: Outline: Fix unreported feedback loop when smooth wire is disabled d85026db15.
    • GPU: Add workaround for faulty default attrib values on some drivers 56e0249489.
    • Overlay: Fix crash caused by NULL passes 839f0cfa41.
    • Overlay: Wireframe: New method to avoid zfighting with geometry e000dcb849.
    • Overlay: Wireframe: Make facing ratio offset depends on gl_Position.w f3ea8cd608.
    • Fix T75087 Workbench: DoF: Divide By Zero when antialiasing is disabled a0437c3f73.
    • Fix T73505 EEVEE: Group output node sockets default value not working 1b5b6a5da8.
  • 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 f130c5ddb6.
    • EEVEE: Bump minimum probe level to make rough reflection more precise 8751af6d19.
    • EEVEE: Hair: Fix wrong color when using color attribute without actual data 27e0998a8a.
    • EEVEE: Fix test crashing 33c6b269d1.
    • EEVEE: Replace octahedron reflection probe by cubemap array 7dd0be9554.
    • Workbench: Fix default view not reset after drawing 7a19a99675.
    • Workbench Simplification Refactor c476c36e40.
    • GPencil: Use high precision float buffer for final rendering 9c5a120ba2.
    • GPencil: Fix T74625 Airbrush doesn't paint anything fa09b900c2.
    • GPencil: Fix RNA range for uv_rotation 71712d828d.
    • Overlay: Add antialiasing to particle sprites 29b405a327.
    • Fix T74536: Grease pencil immediately crashes on macOS c971e812d5.
    • Fix T74438: Overlay: Loose verts and particle not draw in some conditions 3912a2a227.
  • 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 a4bfe62679.
    • GPencil: Modifier: Simplify: Fix modifier distance and length property feel ea4cc817d1.
    • GPencil: Modifier: Fix smooth factor range 3224950b2d.
    • GPencil: Modifier: Noise: Replace Full Stroke option by Noise Scale c64c5185d5.
    • GPencil: Fix potential out of bound read in Noise modifier c34596a3bb.
    • GPencil: Modifier: Use unique seed for each stroke for Noise modifier 63f6b9c018.
    • GPencil: Modifier: Cleanup Multiple Stroke modifier UI & code eb5a25f4bc.
    • GPencil: Modifier: Rework Array modifier's RNG for better random variation 67408ac939.
    • GPencil: Fix rebase error 7e0b48e58f.
    • GPencil: Modifier: Change Noise Modifier behavior 908dfbf618.
    • GPencil: Modifier: Improve UI of offset modifier 6cfac67df6.
    • GPencil: Modifier: Change Thickness modifier behavior affe9e0b92.
    • GPencil: Modifier: Unlock range of Saturation and Value in HSV modifier 94172a5391.
    • GPencil: Modifier: Fix UI of Tint and Opacity modifiers 33c0861db8.
    • GPencil: Fix stroke textures not working because of material chunk reuse 54798961ff.
    • GPencil: Fix sbuffer rendering twice when using onion skinning ea16bb622a.
    • GPencil: Fix occlusion bug when using multiple material 45647e2be3.
    • GPencil: Fix crash when rendering in new window b3bb17fe75.
  • Workbench Refactor
    • Fix wrong materialId inside material setup resulting in buffer overflow. 4b2dd074aa.
    • Workbench: Optimize out uneeded passes. 242538eba8.
    • Workbench: Add short explanation about the techniques used for rendering eff6fa00fd.
    • Workbench: Refactor: Fix transparent depth pass optimization logic fa848f602a.
    • DRW: Fix offscreen rendering e8f236406c.
    • Workbench: Refactor: Disable Cavity rendering on infront objects 62ee14b04f.
    • Workbench: Refactor: Draw transparent in wireframe mode. 8b76070a9f.
    • Workbench: Refactor: Remove old unused code a713e72952.
    • Workbench: Refactor: Add Volumetric support faf0a5e628.
    • Workbench: Refactor: Antialiasing a459874e77.
    • Workbench: Refactor: Add Dof Support 91dfe40ef0.
    • Workbench: Refactor: Add outline support a102b7ebe5.
    • Workbench: Refactor: Add cavity support aae2e1326f.
    • Workbench: Refactor: Add Shadow support 606f1d80b3.
    • Workbench: Refactor: Add hair support + tweak the randomness of hairs color f426e71e09.
    • Workbench: Refactor: Add Infront support 62a7ac8f17.
    • Workbench: Refactor: Add transparent (xray) support 73de98e6e0.
    • Workbench: Refactor: Only allocate id buffer if needed d36e63f8db.
    • Workbench: Refactor: Add specular toggle support e34ce36ea4.
    • Workbench: Refactor: Add matcap support 76a7ea0b71.
    • Workbench: Refactor: Add support for Flat shading 46f8367eac.
    • Workbench: Refactor: Add support for texpaint & vertpaint 5759e2d6c4.
    • Workbench: Refactor: Support Material data e6e740f317.
    • Workbench: Refactor: Code reorganization 1545c37cdb.
    • BLI_memblock: Allow to use BLI_memblock_elem_get using only elem index b6e083358e.
    • DRW: Manager: Expose resource handle getter 1e58e68c1a.
    • DRW: Shader: Add shader library manager 616545b5cf.
  • 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. 8af7d28e8c.
    • EEVEE: LightCache: Fix error in texture readback and creation 81c96fa80d.
    • EEVEE: Replace octahedron reflection probe by cubemap array a1026d7522.
    • EEVEE: LightCache: Reset lightcache info message on file load 681b47d2c7.
    • EEVEE: Add version check on lightcache data 90f2d14499.
    • EEVEE: Use cubemap array to avoid shader texture filtering workaround 66bdd44551.
    • EEVEE: Deprecate old cache 895f104ced.
    • EEVEE: Replace octahedron reflection probe by cubemap array e090b78f26.
    • GPU: Implement cubemap array support through extension bf09123bae.
  • General developement
    • Cleanup: Workbench: Remove checkerboard depth 8955b8b992.
    • EEVEE: Fix memleak when G.is_break is set from another thread c26f470cfe.
    • EEVEE: Fix seams in reflection cubemap on low roughness 8885fb5929.
    • EEVEE: Lookdev: Add support for partially blurred background 6e23433c1a.
    • EEVEE: Lookdev: Fix cubemap resolution change not refreshing lightcache 19de81afe5.
    • EEVEE: Lookdev: Fix lookdev spheres positioning in viewport render 2ffd530217.
    • GPU: Add Image property to allow high bitdepth support on a per image basis 4e9fffc289.
    • Overlay: Edit Mode: Fix wireframes being brighter because of linear blend abb7364912.
    • Overlay: Fix overlays being washed out by render colors 190fd795a9.
    • Overlay: Fix wireframes being brighter because of color management 39d0bf9044.
    • Overlay: Remove Xray dithering noise ed21506f26.
  • 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 852cdd476b.
    • DRW: Fix facing reset when drawing with inverted camera 67cbce0b02.
    • DRW: Fix wrong view transform used in solid mode if using workbench engine cc296ef179.
    • DRW: New High Quality Normal & Tangent extract e82827bf6e.
    • DRW: Support inverted view matrix f972a3c314.
    • EEVEE: Fix default material disappearing when SSRefraction is enabled 19e63bb51e.
    • EEVEE: Fix memleak when G.is_break is set from another thread c26f470cfe.
    • Fix T73748 Overlay: Infront disappearing/glitched while in Xray mode 00227edf4c.
    • Fix T73793 Overlay: Walk navigation crosshair gets hidden behind objects b117b8e818.
    • Fix T73876 Overlay: Armature: Pose bones display randomly f78c407aff.
    • Fix T73914 Overlay: Unable to select bone in pose mode 9491e7d7c2.
    • Fix T74019 Eevee High Quality Normals causing pitch black faces 0c01ad9300.
    • GPU: Fix huge performance regression regarding instancing 77619f5274.
    • GPU: Limit Mesa workaround to older version 56d6666689.
    • Overlay: Edit Mode: Fix wireframes being brighter because of linear blend abb7364912.
    • Overlay: Fix wireframes being brighter because of color management 39d0bf9044.
    • Overlay: Remove Xray dithering noise ed21506f26.
    • Overlay: Fixed blending issue when not using smooth wire a661ef42fb.
  • 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 31ad86884c.
    • Workbench: Fix depth of field background being glitchy eaea5c8904.
    • Workbench: Fix premultiply alpha issue in transparent material d051dd01ed.
    • DRW: Fix viewport render always rendering with transparent background 180aff7b74.
    • DRW: Fix color management in material/rendered mode b6572c5430.
    • DRW: Color Management improvement 804e90b42d.
    • Overlay: Fix non meshes object disappearing if smooth wire is not enabled a40d9ce553.
    • Fix T73442 Overlay: Wireframe infront buggy in material shading mode f1f2d9fe74.
    • GPencil: Opti: Merge AntiAliasing pass with compositing pass 46d0e93b54.
    • GPencil: Fix sbuffer stroke not overlapping with previous stroke 4f57d6db94.
    • GPencil: Support XRay mode in solid and fix occlusion in wireframe mode 319e769ea3.
    • GPencil: Fix NaN result in divide blend mode e43fcee778.
    • GPencil: Fix undefined behavior caused by stroke aspect commit a6da286694.
    • GPencil: Fix alpha textured stroke buggy behavior f0d05b382a.
    • GPencil: Add Dot aspect support back 9147e57331.
    • GPencil: Fix depth being written outside of masks boundaries a580934b7a.
    • GPencil: Render: Fix crash when using region rendering 7c815db28d.
    • GPencil: Remove unpredicatble behavior when rendering without depth pass dec3cbc818.
    • GPencil: Refactor: Remove the hardcoded sRGB final transform for viewport 19d04ce349.
    • GPencil: Refactor: Add per mask inversion capability d8c99ac34e.
    • GPencil: Refactor: Add implementation of new mask list system 9ef18d8b36.
  • 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 0936f2f52c.
    • Fix T61685 Curve extrusion looses flat shading in certain viewport shading c19112d755.
    • Fix T73517 Overlay: Edit Mode: X-Ray does not work if xray is equal to 1 77394ef1db.
    • Fix T69834 Edit Mesh: Multi-object edit crash when an instance is hidden 0a95a0852e.
    • Fix T72155 Overlay: Bone X-ray no longer works in pose or weight paint mode 86fb8062d7.
    • Fix T72261 Overlay: Edit Mesh: Edges not visible when using "In front" 0cd0058e27.
    • Fix T72504 EEVEE: Crash when rendering Instance Collection with hair 8efd804685.
    • Fix T73127 EEVEE: Reflection plane not visible in lookdev without scene world 092deb88b0.
    • Fix T70121 EEVEE/GPencil: Curves cause crash when using background rendering 994e9f702f.
    • Fix T67641 Gizmo3D: Transform gizmo disappear in very close view 79003fa0c4.
    • Selection: Add conservative rasterization to select really small objects 3685347b41.
    • Overlay: Armature: Fix Display armature as bound box in object mode 06a8f55104.
    • GPU: Remove disabling of indirect drawcall batching on NVIDIA hardware fd130a711e.
  • 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 15350c70be c27d30f3ea bcacf47cbc.
    • EEVEE: Test maximum texture size before render. 8c5cb8359a.
    • Fix T72593 Blender crashes when modifier change the material count 3fd4c88e3a.
    • Fix T54422 FluidSim: ColorRamp set position does not update the viewport ecab41e44f.
    • Fix T62730 Overlay: Selected edit hair points highlight is incorrect b2034c6ba2.
    • Fix T65146 EEVEE: Curve Texture Coordinates in Cycles and Eevee differ 6576148722.
    • Fix T66699 EEVEE: Material Preview "World" option doesn't work ed4cbde967.
    • Fix T67060 EEVEE: Noise caused by disk lights 3d73609832.
    • Fix T67552 EEVEE: Vector Curves node clamps maximum input value at 1.0 507a331f01.
    • Fix T69070 EEVEE: Volume shader glitch if object as axis with 0.0 scale 0366c46ec6.
  • Viewport Color Management Refactor
    • Overlay: Fix edit text overlay invert logic op not working c0675868a3.
    • Overlay: Armature: Fix look regression because of linear space rendering f9914a8ef9.
    • Overlay: Put all colors inside draw_common.c for correct colormanagment. fe327c0970.
    • Overlay: Support viewport background modes a7ac3a3ee3.
    • Overlay: Move Alt+B clipping bounds display from workbench to overlay a3ee3b8f24.
    • Render API: Make external engine render in linear space for the viewport b180c8b847.
    • OCIO: Use GroupTransform to avoid doing 3 transforms instead of 2 089b55885c.
  • 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 c5436883c6.
    • Fix T71374 EEVEE: Fix Node group socket not converting inputs as in Cycles c2e21b2329.
    • Fix T67050 Overlay: Forcefield limits are not dashed 170844135a.
    • Fix T66956 EEVEE: NaN produced by bad geometry mess with the DoF 3cd32c376d.
    • Fix T73335 Overlay: Light Distance line does not represent custom distance 6dcbc3cd5a.
    • Overlay: Improve Outline diagonal Antialiasing 335930ab4e.
  • Viewport Color Management Refactor
    • DRW: Color Management: Do some rearangement of the draw code 05dda64cf2.
    • DRW: Color Management: Fix ghosting with cycles. bef1c0d11e.
    • DRW: Color Management: Fix viewport render pipeline be68e89948.
    • DRW: Color Management: Rework code to accept new color transform needed 281fb48440.
    • DRW: Color Management: Move color management to the GPUViewport adf98e6360.
    • DRW: Color Management: Remove DrawEngineType draw_background function 7d25c74615.
    • GPU: Add sRGB framebuffer support 73f612fa3b.
    • GPUViewport: Add fallback colormanagment 2616a0a9d6.
    • GPUViewport: Fix image uv editor. 5db185d1c4.
    • OCIO: Improve/Cleanup Implementation a0283355fc.
    • OCIO: Support overlay blending in linear colorspace in GLSL backend 419a818eec.
    • Overlay: Add other background types (checker and gradient) e18f0a4cfb.
    • Overlay: Cleanup Image background implementation e9411b8ccf.
  • 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 b847861b6c.
    • GPencil: Refactor: Speedup: Add drawcall merging of consecutive strokes cb089c25e2.
    • GPencil: Refactor: Allocate GPU framebuffers only if necessary 8b02f761d9.
    • DRW: Store vertex color in linear format on GPU 6eaf51ef3e.
    • DRW: Fix stencil being modified by passes that are read only b8bdb8e9e9.
    • Fix EEVEE: Planar Reflection data has inverted facing 0461ff764a.
    • Fix T67942 EEVEE: Crash when empty is set as camera and motion blur is on 7b29956cc5.
    • Fix T69794 EEVEE: "Bake Cubemap Only" resets Irradiance Volume if world is updated 5d5add5de2.
    • Fix T70766 EEVEE: Performance drop with node tree in 2.81 32f0bb0523.
    • Fix T71402 EEVEE: Transparent material add volume scattering 39d5d11e02.
    • Fix T71532 EEVEE: Hair UV/Color attributes not working ba5bbf14f9.
    • Fix T71788 EEVEE: Invalid (pink) shader when using wireframe node faf563d27c.
    • Fix T72104 Blender selects faces outside of Clipping Region if X-Ray is off 848b28d71e.
    • Fix T72152 DRW_debug_sphere Not Working After Overlay Refactor 60c6a74ce1.
    • Fix T72490 Collections: Exclude From View toggle causes segment violation e2724abc22.
    • Fix T72547 Overlay: Wireframe clipping issues fca069a705.
    • Fix T72574 Overlay: 'Show Cone' for Spotlights not working anymore aa3720ed82.
    • Fix T72871 Overlay: Spotlights cone is much smaller than before 3fa548f986.
    • Fix T72957 Crash using Eye dropper in Edit mode with X-ray 84825e4b50.
    • Fix T73044 Crash in UV editor when changing UV selection modes 2359979141.
    • Fix T73116 Crash on startup caused by implicit conversion in glsl d51dcaf104.
    • Overlay: Edit Mode: Fix vertices depth test not always on 820794e162.
    • Overlay: Fix wrong 3D icon for cubemap lightprobes d72ffb5e9a.
  • 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 1d25838eb4.
    • GPencil: Refactor: Add back guides and control points overlays ae529faa87.
    • GPencil: Refactor: Add canvas grid 3b27d75f45.
    • GPencil: Refactor: Add fill vertex color suppport 2e609a4582.
    • GPencil: Refactor: Add gpencil case to BKE_object_is_in_editmode b33c61a4af.
    • GPencil: Refactor: Add outline overlay 981c49ff4c.
    • GPencil: Refactor: Add support for GPencil wireframes de4c23384f.
    • GPencil: Refactor: Add Weight Paint support 1762cd3412.
    • GPencil: Refactor: Disable GPencil Outline in edit mode d333b0c6cb.
    • GPencil: Refactor: Don't draw Gpencil objects if drawtype is not solid 2942e7eb03.
    • GPencil: Refactor: Edit Mode support. a1285eb4d8.
    • GPencil: Refactor: Edit Mode: Add support for minor features 55f38e453c.
    • GPencil: Refactor: Enable gpencil engine if xray is not used 5d6eb25858.
    • GPencil: Refactor: Enable Vertex color mode in vertex paint 00feefba10.
    • GPencil: Refactor: Fix depth sorting with workbench render bd0809da61.
    • GPencil: Refactor: Make Lighting effect only happen in lookdev & render mode bc774caaac.
    • GPencil: Refactor: Make sbuffer batches managment more robust 5196533f91.
    • GPencil: Refactor: Make Texture UV transform behave like normal 3D ones 1da03b2e80.
    • GPencil: Refactor: Move batch cache functions to DRW module 41cef139ad.
    • GPencil: Refactor: Move iterator to BKE 154fa8b853.
    • GPencil: Refactor: Move vertex shader logic to gpencil_common_lib.glsl fb51417370.
    • GPencil: Refactor: Overlay: Add hide selection option back 6ac1f2eff2.
    • Gpencil: Refactor: Overlay: Fix crash when no gpencil object is active d9f0885050.
    • GPencil: Refactor: Remove 3D stroke offset 80109a69ea.
    • GPencil: Refactor: Remove last occurence of stl->storage b6ff712af2.
    • GPencil: Refactor: Remove per layer random color jitter in wireframe 50da5bf2cb.
    • GPencil: Refactor: Replace Stroke Miter break by rounded corners b83692e11a.
    • GPencil: Refactor: Rewrite the render pipeline 42ad3282c5.
    • Gpencil: Refactor: Support per layer random color in wireframe overlay 938a26be8f.
    • GPencil: Refactor: Support solid mode color modes 710601b5d0.
    • GPencil: Refactor: Use drawcall matrices instead of custom one 93c9347e9c.
    • Overlay: Allow alpha blend passes to write to the line buffer 31700ba657.
  • 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 0f7bde8f6f.
    • GPencil: Refactor: Fix black GPobjects in hero files eca698867c.
    • GPencil: Refactor: Add stroke fast drawing 94d228a4e4.
    • GPencil: Refactor: Implement sbuffer stroke drawing 8a1cc77fdd.
    • GPencil: Refactor: Add back gradient fill mode 384f870f4d.
    • GPencil: Refactor: Implement Onion skinning back 589a889d23 f0ba75639a.
    • GPencil: Refactor: Fix dot UV rotation at the end of strokes a6d30c064d.
    • GPencil: Refactor: Remove image size from uv computation 6a51a61074.
    • GPencil: Refactor: Add Stroke dot UV random rotation support 549a547f54.
    • GPencil: Refactor: Use stroke mask to cut dots shape 0d8a4528f7.
    • GPencil: Refactor: Add dot stroke object rotation mode 3fc6f6c592.
  • Next week

Focus on finishing the GPencil refactor.