User:Hypersomniac/Foundation/2023

Week 316 : 30th - 5th February
I focused my week on porting all source to the new matrix API. We had to revert this change because of a sneaky build error on the windows buildbot which could not be replicated locally. We will follow investigation next week.
 * Info

I also fixed the last remaining bug on EEVEE-Next virtual shadow maps which should be merged to master soon.


 * Master
 * BLI: Math: Add `xy` and `xyz` swizzle functions.
 * BLI: Use BLI_math_matrix_type.hh instead of BLI_math_float4x4.hh (reverted later).
 * GPencil: Use BLI_math_matrix_type.hh instead of BLI_math_float4x4.hh.

Week 315 : 23rd - 29th January
This week was focused on bug-fixing the new shadow, improve the depth bias, improve the scalability, and implement a solution for the orthographic views.
 * Info

The first stage of the new shadows implementation is almost finished. There in one major bug that still needs to be fixed in orthographic views before it can be landed. The implementation of virtual shadow mapping will then be considered done. A lot of performance improvement can be implemented later on and are tracked by this task.

Addition of some more parameters can be discussed.

However, I won't be able to fix the remaining issue this coming week for personal reason. For this reason, I postpone the merging of the new shadow until I can solve the remaining issue.


 * Master
 * DRW: Debug Print: Fix print of vec3.
 * DRW: Fix Texture.ensure function always recreating the texture.

Week 314 : 16th - 22nd January
Started to port back commits in preparation of the EEVEE-Next shadow landing.
 * Info

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.


 * Master
 * BLI: Math: Fix perspective matrix function.
 * DRW: Add double buffering of objects matrices, bounds, and infos.
 * DRW: Fix DRW_VIEW_FROM_RESOURCE_ID.
 * DRW: Fix display print.
 * DRW: GPU Wrappers: Add swap to storage buffers, empty framebuffer and fixes.
 * DRW: Make intersect lib not dependent on common_view_lib.glsl.
 * DRW: Protect `common_math_lib.glsl` from duplicated declaration.
 * DRW: Tests: Add test for PassSimple::Sub.
 * DRW: View: Allow disabling view test by setting bound sphere radius to -1.
 * DRW: View: Allow for GPU side specification of view bounds.

Week 313 : 9th - 15th January
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.
 * Info

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.
 * DRW: Add debug print for matrix type.
 * EEVEE: Avoid glitchy displacement on curve geometry.
 * Fix T103256 Viewport: Regression: Clipping Region is not working.
 * GPU: Fix math lib compilation and tests on AMD drivers.
 * GPU: Fix uninitialized variable which created asan warning / errors.
 * GPU: Math: Add floatBitsToOrderedInt and orderedIntBitsToFloat.

Week 312 : 2nd - 8th January
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++.
 * Info

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


 * Master
 * BLI: Add `nodiscard` to math vector lib.
 * BLI: Math: Vector: Improve API documentation.
 * BLI: Refactor matrix types & functions to use templates.
 * Cleanup: BLI: Remove BLI_ENABLE_IF((is_math_float_type)) from vector API.
 * Cleanup: BLI: Rename vec_base to VecBase.
 * Cleanup: BLI: Rename vector compare to is_equal for consistency.
 * Cleanup: Rename BLI_math_vec_types* files to BLI_math_vector_types.
 * GPU: Add Math libraries to GPU shaders code.
 * GPU: Fix test on metal.
 * GPU: Texture: Fix missing cases in `validate_data_format`.
 * Metal: Add support for all matrix types.