User:Hypersomniac/Foundation/2022

Week 271 : 21st - 27th March
Majority of the week was spent on making current eevee codebase build with the new codegen and node changes. It is not yet fully working but the base functionalities are there. This is not yet commited Spend some time reviewing Metal patches. Also spent a bit of time to port some overlay shaders which are not commited yet.
 * Info


 * Master
 * DRW: Port draw_common.c to use shared definition with GLSL.
 * GL: Fix compilation error on MSVC.
 * GL: Fix shader error logging on Apple M1 hardware.
 * GPU: ShaderBuilder: Fix compilation on Mac.
 * GPU: ShaderBuilder: Skip shader compilation for unsupported shaders..


 * Eevee Rewrite
 * EEVEE: Move Closure definitions to gpu_shader_codegen_lib.glsl.

Week 270 : 14th - 20th March

 * Master
 * DRW: Add new texture from pool acquire/release mechanism.
 * DRW: Add simple texture view wrappers to draw::Texture.
 * DRW: Add support for GPUStorageBuf.
 * DRW: Add support for compute indirect command..
 * DRW: Expose stencil view in gpu_wrapper.
 * DRW: GPU wrappers: Some quality of life improvements.
 * DRW: Introduce GPencil common GLSL library.
 * DRW: Make use of shader shared header.
 * DRW: Port improvements in common_math_lib.glsl from `eevee-rewrite`.
 * EEVEE: Add new experimental "EEVEE Next" option.
 * GL: Add missing format in image layout conversion.
 * GL: Add StorageBuf implementation.
 * GL: Check texture framebuffer feedback only if not using compute pipeline..
 * GLShader: Fix two small issues with compute shader generated code.
 * GPU: Add indirect dispatch support..
 * GPU: Add support for stencil buffer texturing mode..
 * GPU: StorageBuf: Add method to clear the buffer in place..
 * GPUShader: Fix crash when compilation error is a linking error.
 * GPUShaderCreateInfo: Add explicit early_fragment_test.
 * GPUSource: Fix failure case in the enum preprocessor.
 * GPUTexture: Add Cube view as 2D array.
 * GPUTexture: Expose layer & mip count.
 * GPUTexture: Fix bug in texture view creation.
 * GPencil: Port shaders to ShaderCreateInfo.


 * Eevee Rewrite
 * DRW: Add support for compute indirect command..
 * DRW: Expose stencil view in gpu_wrapper.
 * DRW: gpu wrappers: Fix compilation in release mode.
 * EEVEE: Fix race condition in HiZ downsample shader.
 * EEVEE: Material: Fix issue with DRWShadingGroup reuse..
 * EEVEE: Raytracing: Add back denoising step.
 * EEVEE: Refactor indirect lighting pipeline to use compute.
 * EEVEE: Speedup: Add subsurface scattering bypass on principle BSDF.
 * EEVEE: Use compute shaders for lightprobe related filtering.
 * GL: Check texture framebuffer feedback only if not using compute pipeline..
 * GPU: Add indirect dispatch support..
 * GPU: Add support for stencil buffer texturing mode..
 * GPU: StorageBuf: Add method to clear the buffer in place..
 * GPUCodegen: Add comment on the pass hash first check.
 * GPUCodegen: Fix missing dependency of some nodes to object infos.
 * GPUMaterial: Fix compilation error when shader use bump nodes.
 * GPUMaterial: Fix missing thickness output link.
 * GPUTexture: Add Cube view as 2D array.

Week 269 : 7th - 13th March

 * Eevee Rewrite
 * GPUTexture: Fix bug in texture view creation.

Week 268 : 28th - 6th March

 * Eevee Rewrite
 * EEVEE: Deferred: Large refactor.
 * GL: Add missing format in image layout conversion.
 * GPUShaderCreateInfo: Add explicit early_fragment_test.

Week 267 : 21st - 27th February

 * Master
 * GPU: Fix compilation in debug mode.
 * GPUTexture: Add support for texture view.
 * GPUTexture: Use immutable storage.
 * OCIO: Fix bool1 vs. bool comparison warning..
 * OCIO: Fix mip length in texture creation.


 * Eevee Rewrite
 * DRW: Add simple texture view wrappers to draw::Texture.
 * EEVEE: Fix no shadow option.
 * EEVEE: Shadow: Improve the case of directional shadowmaps in ortho view.
 * EEVEE: Simplify Hi-Z pass by porting it to a single pass compute shader.
 * GPUTexture: Expose layer & mip count.

Week 266 : 14th - 20th February

 * Master
 * BLI: Fix compilation error caused by rBa9f023e22638.
 * GLCompute: Apply state before dispatch.
 * GPU: Remove runtime sampler texture slot assignment.
 * GPUTexture: Add dimensions getter.
 * OCIO: Port shader creation logic to use GPUShaderCreateInfo.
 * OCIO: Port shader creation logic to use GPUShaderCreateInfo.


 * Eevee Rewrite
 * DRW: Add optional name to storage buffers.
 * DRW: Debug print: add support for multithread printing.
 * DRW: Debug: Print fix missing last argument and support function call.
 * DRW: Port draw_debug_lib to shader info.
 * EEVEE: Fix build on MSVC.
 * EEVEE: Fix forward material not appearing..
 * EEVEE: Fix glossy filter.
 * EEVEE: Fix shader compilation.
 * EEVEE: Fix some GL errors and missing binds.
 * EEVEE: Fix use_scene_lights option.
 * EEVEE: Improve shadow debug.
 * EEVEE: Shadow: Add debug visual for the page cache.
 * EEVEE: Shadow: Add render page list to simplify the execution model.
 * EEVEE: Shadow: Avoid loosing cached tiles updates in LOD levels.
 * EEVEE: Shadow: Avoid missing a load because of float imprecision.
 * EEVEE: Shadow: Fix defrag phase.
 * EEVEE: Shadow: Fix out of bound access in page_list stage.
 * EEVEE: Shadow: Improve debug.
 * EEVEE: Shadow: Revisit the cache system.
 * EEVEE: Shadow: Use debug_view for debug pass.
 * EEVEE: Shadows: Compute max tile LOD visibility.
 * EEVEE: Shadows: Fix 2 small imprecision.
 * GLStorageBuf: Fix wrong enum for debug name.

Week 265 : 7th - 13th February

 * Eevee Rewrite
 * DRW: Add new draw_debug_print_lib.glsl.
 * DRW: Add null resource check instead of crashing.
 * DRW: Add support for GPUStorageBuf in wrappers.
 * DRW: Add support for GPUStorageBuf.
 * EEVEE: Disable raytracing.
 * EEVEE: Fix light culling light count and padd culling tile buffer.
 * EEVEE: Fix shader compilation on Nvidia driver.
 * EEVEE: Fix shader not static.
 * EEVEE: Remove integer division.
 * EEVEE: Split directional light path.
 * Fix compilation in release mode.
 * GLShader: Fix two small issues with compute shader generated code.
 * GPU/GL: Add StorageBuf implementation.
 * GPUCodegen: Fix attribute having GPU_NONE gputype.
 * GPUCodegen: Fix missing mat4 in function arguments.
 * GPUShader: Fix crash when compilation error is a linking error.

Week 264 : 31st - 6th February

 * Master
 * DRW: Add DRW_UNUSED_RESOURCE_TRACKING for ubo and ssbo.
 * DRW: Add compute_ref calls, barriers calls, and vertex_buffer_ref.
 * DRW: Add preprocessor error if including common_view_lib.glsl without draw_view.
 * DRW: Fix a comment.
 * DRW: Fix bug in cubemap creation in draw::Texture.
 * DRW: Fix memory leak in UniformArrayBuffer.
 * Fix T95284 Workbench: "World" Cavity Type Doesn't Render Anything.
 * Fix T95427: Crash during dragging a link in a node editor.
 * GL: Add all image types in binding setup..
 * GLDebug: Wrap glDispatch function into our debug wrappers.
 * GLShader: Fix several low importance issues.
 * GLShaderInterface: Fix SSBO using the ubo mask.
 * GPU: move gpu_shader_shared_utils.h to the public section of the module.
 * GPUFramebuffer: Bump max attachment count to 8.
 * GPUShader: Add support for gpu_BaryCoord and fallback.
 * GPUShader: Add support for vertex shader gl_Layer and fallback.
 * GPUShader: Cleanup dependency system to not remove string allocation.
 * GPUShader: Expose create_info getter.
 * GPUShader: Improve builtins support in GPUShaderCreateInfo.
 * GPUShader: Improve error/warning logging experience.
 * GPUShader: Rename createInfo storage Qualifiers.
 * GPUShaderCreateInfo: Add duplication error checking of dependency merging.
 * GPUShaderCreateInfo: Merge changes from eevee-rewrite.
 * GPUState: Add more barrier types.


 * 3.1 Release
 * Fix T95278: Crash on startup because of GLSL recursion.
 * Fix T95284 Workbench: "World" Cavity Type Doesn't Render Anything.
 * Fix T95427: Crash during dragging a link in a node editor.
 * GL: Fix compute shader label error.
 * GPU: Debug: Avoid double printing of compilation issues.
 * GPU: Enable CLOG for gpu when `--debug-gpu` option is set.
 * GPU: Fix assert when running without --debug-gpu option on older GL.
 * GPUTexture: Fix missing/wrong cases in to_data_format.
 * Workbench: Fix unreported heavily quantized mesh due to driver issue.


 * Eevee Rewrite
 * BLI_float4x4: Add << operator and add ATTR_WARN_UNUSED_RESULT to identity.
 * Cleanup: common_hair_lib.glsl: deduplicate functions definitions.
 * Codegen: Fix memory leak.
 * DRW: Add draw_gpencil info for gpencil geom type.
 * DRW: Add preprocessor error if including common_view_lib.glsl without draw_view.
 * DRW: Fix heatmap_gradient function messing error line number.
 * DRW: Make use of shader shared header.
 * EEVEE: Add back support of raytrace_resolve_lib.glsl.
 * EEVEE: Add material shader tests in the form of unused createInfos.
 * EEVEE: Finish implementing GPUShaderCreateInfo and fix compilation.
 * EEVEE: Fix assert caused by division by 0.
 * EEVEE: Fix compilation on amdgpu-pro.
 * EEVEE: Fix dependencies to draw_view.
 * EEVEE: Fix float4x4 usage.
 * EEVEE: Fix frustum_planes/corners references.
 * EEVEE: Fix missing gpu_Layer in probe filter.
 * EEVEE: Fix missing resource binding.
 * EEVEE: Fix missing weight socket on multiple nodes.
 * EEVEE: Fix more float4x4 issues.
 * EEVEE: Fix more shader compilation issues.
 * EEVEE: Fix some broken renaming.
 * EEVEE: Fix uninitialized texture issue..
 * EEVEE: Use GPUShaderCreateInfo.
 * Fix clang-tidy.
 * GL: Fix compute shader label error.
 * GLDebug: Wrap glDispatch function into our debug wrappers.
 * GLShader: Add array macro.
 * GLShader: Fix image declaration.
 * GLShader: Fix warning about ARB_conservative_depth even if the GL version supports it.
 * GLShaderInterface: Fix SSBO using the ubo mask.
 * GLShaderInterface: Fix missing in builtin SSBO support.
 * GPU: Debug: Avoid double printing of compilation issues.
 * GPU: Enable CLOG for gpu when `--debug-gpu` option is set.
 * GPU: Rewrite the function library system.
 * GPUCodegen: Port to use shader create info.
 * GPUCodegen: Remove use of gpu_data_type_to_string.
 * GPUShader: Add better error message in case of incorrect dependency name.
 * GPUShader: Add optionnal dependency display in.
 * GPUShader: Avoid double typedef source inclusion.
 * GPUShader: Fix issue when error row is 0.
 * GPUShader: Improve error logging to support source:row layout.
 * GPUShader: Remove some non useful error lines from log.
 * GPUShaderCreateInfo: Add automatic resource location.
 * GPUShaderCreateInfo: Add basic debug print support.
 * GPUShaderCreateInfo: Add duplication error checking of dependency merging.
 * GPUShaderCreateInfo: Fix strange crash when using std::cerr.
 * GPUShaderLog: Add filename before error to improve debugging.
 * GPUTexture: Fix missing cases in to_data_format.
 * GPUTexture: Fix missing cases in validate_data_format.
 * fix merge.

Week 263 : 24th - 30th January

 * Master
 * BLI_float4x4: Add operator[].
 * BLI_string_ref: Add back missing rfind.
 * D13910: Workbench: Port shaders to use GPUShaderCreateInfo.
 * DRW: Fix DRW_gpu_wrapper.hh.
 * DRW: Fix builtin uniform name mismatch.
 * DRW: Fix some issues with DRW_gpu_wrapper.hh.
 * Fix crash on older platform due to unsupported clear command.
 * GLFramebuffer: Add assert to check if framebuffer has the expected data.
 * GLShader: Fix buffer overflow caused by workaround uniform.
 * GLShader: Fix crash caused by redundant uniform declaration.
 * GLShader: Fix fallback to gl_BaseInstance.
 * GLShaderInterface: Fix interface from createInfo not setting bindings.
 * GPUShader: Abort in case of dependency issues..
 * GPUShader: Add GLSL source modification pass to support enums.
 * GPUShader: Add optionnal single shader stage interface for in and out.
 * GPUShaderCreateInfo: Add optionnal check for optimized out resources.
 * GPUShaderCreateInfo: Remove push_constant indexing.
 * LShaderInterface: Fix interface binding with UBO containing arrays.
 * Workbench: Use GPU_ARB_gpu_shader5 instead of GL variant.


 * 3.1 Release
 * BLI_float4x4: Add operator[].
 * BLI_string_ref: Add back missing rfind.
 * D13910: Workbench: Port shaders to use GPUShaderCreateInfo.
 * DRW: Fix DRW_gpu_wrapper.hh.
 * DRW: Fix builtin uniform name mismatch.
 * DRW: Fix some issues with DRW_gpu_wrapper.hh.
 * Fix T95278: Crash on startup because of GLSL compiler bug.
 * Fix crash on older platform due to unsupported clear command.
 * Fix typos in rB0a8fa07735cdb89081b652c032c73863e34f8ff1.
 * GLFramebuffer: Add assert to check if framebuffer has the expected data.
 * GLShader: Fix buffer overflow caused by workaround uniform.
 * GLShader: Fix crash caused by redundant uniform declaration.
 * GLShader: Fix fallback to gl_BaseInstance.
 * GLShaderInterface: Fix interface from createInfo not setting bindings.
 * GPUShader: Abort in case of dependency issues..
 * GPUShader: Add GLSL source modification pass to support enums.
 * GPUShader: Add optionnal single shader stage interface for in and out.
 * GPUShaderCreateInfo: Add optionnal check for optimized out resources.
 * GPUShaderCreateInfo: Remove push_constant indexing.
 * LShaderInterface: Fix interface binding with UBO containing arrays.
 * Workbench: Use GPU_ARB_gpu_shader5 instead of GL variant.


 * Eevee Rewrite
 * Comment eevee_raytrace_resolve_lib out to avoid compilation errors for now.
 * EEVEE: Fix compilation issues.
 * EEVEE: Make use of DRW_gpu_wrappers.
 * EEVEE: Make use of float4x4 instead of float[4][4] and rename vectors.
 * EEVEE: Make use of new DRW_gpu_wrapper.hh instead of eevee_wrapper.hh.
 * Fix MainView constructor error on GCC < 9.4.
 * Fix NaN compilation error on MSVC.
 * Fix linker error on gpu_shader_builder.cc.
 * Fix missing glsl file in cmake file.

Week 262 : 17th - 23rd January

 * 3.1 Release
 * GPUShaderCreateInfo: Add manual validation of bindpoints.
 * GPUShaderCreateInfo: Rework geometry shader layout support.

Week 261 : 10th - 16th January

 * 3.1 Release
 * BLI: Refactor vector types & functions to use templates.
 * BLI_math: Fix building when WITH_GMP is off.
 * DRW: Add DRW_gpu_wrapper.hh.

Week 260 : 3rd - 9th January
Worked on refactoring the vector type to use templating to deduplicate code.
 * Info