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


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


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 T71055 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 TT66231 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 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 T74139

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