Week 314 : 16th - 22nd January

  • Info

Started to port back commits in preparation of the EEVEE-Next shadow landing.

Spend a lot of time polishing features for the shadows. Uncovered a bad issue with transparent (alpha blended) object not tagging all needed shadow pages, which might be addressed later. I estimate that we could merge next week once I implement scalability options options.

  • Master
    • BLI: Math: Fix perspective matrix function 17768b3df1 6f206f713e.
    • DRW: Add double buffering of objects matrices, bounds, and infos 9c54f2655d.
    • DRW: Fix DRW_VIEW_FROM_RESOURCE_ID e6be3f96d8.
    • DRW: Fix display print 493e3230b4.
    • DRW: GPU Wrappers: Add swap to storage buffers, empty framebuffer and fixes 21b3689fb9.
    • DRW: Make intersect lib not dependent on common_view_lib.glsl 534214e65c.
    • DRW: Protect common_math_lib.glsl from duplicated declaration 9e5ada315f.
    • DRW: Tests: Add test for PassSimple::Sub df74a9b624.
    • DRW: View: Allow disabling view test by setting bound sphere radius to -1 c412d2dcfe.
    • DRW: View: Allow for GPU side specification of view bounds efe51f0220.

Week 313 : 9th - 15th January

  • Info

Focused on working on EEVEE-next shadows. I now have shadow map rendering working as intended. There is still some improvement that needs to be done in order to make it shippable and this should be done by next week.

Fixed 2 high priority bugs. Some of the commits in master are just things that are needed by EEVEE-next.

  • Master
    • BLI: Math: Add sign() function 8b5d5cbf06.
    • DRW: Add debug print for matrix type 6da7436cce.
    • EEVEE: Avoid glitchy displacement on curve geometry b2746876f2.
    • Fix T103256 Viewport: Regression: Clipping Region is not working 87bb14ab5f.
    • GPU: Fix math lib compilation and tests on AMD drivers 71ca339fe0.
    • GPU: Fix uninitialized variable which created asan warning / errors 945d108ab8.
    • GPU: Math: Add floatBitsToOrderedInt and orderedIntBitsToFloat 28db19433e.

Week 312 : 2nd - 8th January

  • Info

Highlight of this week is the merge of the new Matrix API which is. I took care there was no performance regression in the most used matrix multiplications functions. This was followed by some cleanups of the vector API. I also merged a GLSL version of the math BLI API so we can use the same semantic in both GLSL and C++.

I did some work on EEVEE-Next shadows and started looking into an automatic bias system.

  • Master
    • BLI: Add [[nodiscard]] to math vector lib da2dccca61.
    • BLI: Math: Vector: Improve API documentation ba9f0d5a15.
    • BLI: Refactor matrix types & functions to use templates 8a16523bf1 67e1b52568.
    • Cleanup: BLI: Remove BLI_ENABLE_IF((is_math_float_type)) from vector API 11ecde6a5a.
    • Cleanup: BLI: Rename vec_base to VecBase 73594f4c9c.
    • Cleanup: BLI: Rename vector compare() to is_equal() for consistency 56216e2a62.
    • Cleanup: Rename BLI_math_vec_types* files to BLI_math_vector_types 8f44c37f5c.
    • GPU: Add Math libraries to GPU shaders code 125b283589.
    • GPU: Fix test on metal 1a8675b48d.
    • GPU: Texture: Fix missing cases in validate_data_format() ecd4533615.
    • Metal: Add support for all matrix types a6355a4542.