User:Hypersomniac/Foundation/2022

Week 271 : 21st - 27th March

  • Info

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 D14451 D14438 D14437 D14418. Also spent a bit of time to port some overlay shaders which are not commited yet.

  • Master
    • DRW: Port draw_common.c to use shared definition with GLSL 23bbc0d7481.
    • GL: Fix compilation error on MSVC 86d87fcbdbd a43f3c761e9.
    • GL: Fix shader error logging on Apple M1 hardware ab97add5fa1.
    • GPU: ShaderBuilder: Fix compilation on Mac 664eb193694.
    • GPU: ShaderBuilder: Skip shader compilation for unsupported shaders. 6073b6b874e.
  • Eevee Rewrite
    • EEVEE: Move Closure definitions to gpu_shader_codegen_lib.glsl f4dab644872.

Week 270 : 14th - 20th March

  • Master
    • DRW: Add new texture from pool acquire/release mechanism d7ecd4a0f3b.
    • DRW: Add simple texture view wrappers to draw::Texture 0f08453ea92.
    • DRW: Add support for GPUStorageBuf 2580869901f 8c93f8c6cc9.
    • DRW: Add support for compute indirect command. e5c2bfb3410.
    • DRW: Expose stencil view in gpu_wrapper c509a12fd84.
    • DRW: GPU wrappers: Some quality of life improvements dbf1e7c07f0.
    • DRW: Introduce GPencil common GLSL library 3eaf3453529.
    • DRW: Make use of shader shared header 6ae03375b6c.
    • DRW: Port improvements in common_math_lib.glsl from eevee-rewrite 472fc0c5584.
    • EEVEE: Add new experimental "EEVEE Next" option 59f53f58022.
    • GL: Add missing format in image layout conversion 081255671a5.
    • GL: Add StorageBuf implementation bacfd55a0e4.
    • GL: Check texture framebuffer feedback only if not using compute pipeline. 054957659f6.
    • GLShader: Fix two small issues with compute shader generated code 374cb32d4a4.
    • GPU: Add indirect dispatch support. d7df0dcccb5.
    • GPU: Add support for stencil buffer texturing mode. 93bf17d9521.
    • GPU: StorageBuf: Add method to clear the buffer in place. 7ee816e32f3.
    • GPUShader: Fix crash when compilation error is a linking error 4544761a2d5.
    • GPUShaderCreateInfo: Add explicit early_fragment_test 3f484c502f3.
    • GPUSource: Fix failure case in the enum preprocessor 36b02c3815a.
    • GPUTexture: Add Cube view as 2D array 16dd382f064.
    • GPUTexture: Expose layer & mip count 3b75ca2f60f.
    • GPUTexture: Fix bug in texture view creation 935136f844a.
    • GPencil: Port shaders to ShaderCreateInfo eccb0b222e3 568c453ff38 84a0e04296f 337343ecc95.
  • Eevee Rewrite
    • DRW: Add support for compute indirect command. fd57ab3dd8d.
    • DRW: Expose stencil view in gpu_wrapper ebd50e7f3aa.
    • DRW: gpu wrappers: Fix compilation in release mode 3bc270327de.
    • EEVEE: Fix race condition in HiZ downsample shader 36e355e1ad5.
    • EEVEE: Material: Fix issue with DRWShadingGroup reuse. 7dd40c8ae80.
    • EEVEE: Raytracing: Add back denoising step 3aac5c92bb7.
    • EEVEE: Refactor indirect lighting pipeline to use compute 9e30590eabc.
    • EEVEE: Speedup: Add subsurface scattering bypass on principle BSDF 6cc40796af4.
    • EEVEE: Use compute shaders for lightprobe related filtering 007d4c9e0fc.
    • GL: Check texture framebuffer feedback only if not using compute pipeline. 00caf993f28.
    • GPU: Add indirect dispatch support. 91c5dd21a2d.
    • GPU: Add support for stencil buffer texturing mode. 2bcf75d6cc3.
    • GPU: StorageBuf: Add method to clear the buffer in place. 01118f0e531.
    • GPUCodegen: Add comment on the pass hash first check c50ba2f778e.
    • GPUCodegen: Fix missing dependency of some nodes to object infos 8e7e51bc2fb.
    • GPUMaterial: Fix compilation error when shader use bump nodes 43529aaff3a.
    • GPUMaterial: Fix missing thickness output link 4e3148a547b.
    • GPUTexture: Add Cube view as 2D array ab3f66d7c83.


Week 269 : 7th - 13th March

  • Eevee Rewrite
    • GPUTexture: Fix bug in texture view creation 02f77cbf99b.


Week 268 : 28th - 6th March

  • Eevee Rewrite
    • EEVEE: Deferred: Large refactor 58e2ec18ae5.
    • GL: Add missing format in image layout conversion fbf4d8f8b5c.
    • GPUShaderCreateInfo: Add explicit early_fragment_test d471c7d1c26.


Week 267 : 21st - 27th February

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


Week 266 : 14th - 20th February

  • Master
    • BLI: Fix compilation error caused by rBa9f023e22638 a6267f11678.
    • GLCompute: Apply state before dispatch 302c74e5968.
    • GPU: Remove runtime sampler texture slot assignment 8355ac97b43.
    • GPUTexture: Add dimensions getter d3b1cce4000.
    • OCIO: Port shader creation logic to use GPUShaderCreateInfo 16d56583658.
    • OCIO: Port shader creation logic to use GPUShaderCreateInfo 37fa1bc254b.
  • Eevee Rewrite
    • DRW: Add optional name to storage buffers 70ec3d3a3e7.
    • DRW: Debug print: add support for multithread printing 2903c11c93b.
    • DRW: Debug: Print fix missing last argument and support function call 9e0a2386cf3.
    • DRW: Port draw_debug_lib to shader info 30bbd01fe03.
    • EEVEE: Fix build on MSVC 5247b5aeda2.
    • EEVEE: Fix forward material not appearing. 47b72c8e671.
    • EEVEE: Fix glossy filter 943315d16c1.
    • EEVEE: Fix shader compilation e65f8c25793.
    • EEVEE: Fix some GL errors and missing binds 6c97a2eee85.
    • EEVEE: Fix use_scene_lights option f0c75976d7f.
    • EEVEE: Improve shadow debug a082189c1d5.
    • EEVEE: Shadow: Add debug visual for the page cache 24272c77804.
    • EEVEE: Shadow: Add render page list to simplify the execution model 471ea14ec18.
    • EEVEE: Shadow: Avoid loosing cached tiles updates in LOD levels b75279e19be.
    • EEVEE: Shadow: Avoid missing a load because of float imprecision 871c538509e.
    • EEVEE: Shadow: Fix defrag phase 0451d556c22.
    • EEVEE: Shadow: Fix out of bound access in page_list stage 35ebf6cf02a.
    • EEVEE: Shadow: Improve debug fbf0c0e02b4.
    • EEVEE: Shadow: Revisit the cache system 5a20ef35b36.
    • EEVEE: Shadow: Use debug_view for debug pass 04b49d56783.
    • EEVEE: Shadows: Compute max tile LOD visibility e3793186c08.
    • EEVEE: Shadows: Fix 2 small imprecision 5d27a789178.
    • GLStorageBuf: Fix wrong enum for debug name 74bca81507f.


Week 265 : 7th - 13th February

  • Eevee Rewrite
    • DRW: Add new draw_debug_print_lib.glsl a02eee7e986.
    • DRW: Add null resource check instead of crashing 311f8ba7943.
    • DRW: Add support for GPUStorageBuf in wrappers dd6ee49d057.
    • DRW: Add support for GPUStorageBuf 9c36da1c341.
    • EEVEE: Disable raytracing d73152b9850.
    • EEVEE: Fix light culling light count and padd culling tile buffer 4bcc62a257e.
    • EEVEE: Fix shader compilation on Nvidia driver b4b2af595e8.
    • EEVEE: Fix shader not static da0a8e384eb.
    • EEVEE: Remove integer division a9b0728bd4d.
    • EEVEE: Split directional light path dc9e8a40759.
    • Fix compilation in release mode b284b178440.
    • GLShader: Fix two small issues with compute shader generated code 4205629ea24.
    • GPU/GL: Add StorageBuf implementation 4477ac7c8a2.
    • GPUCodegen: Fix attribute having GPU_NONE gputype af82d0fec73.
    • GPUCodegen: Fix missing mat4 in function arguments 89bef5adb26.
    • GPUShader: Fix crash when compilation error is a linking error 8a9f18d72ce.


Week 264 : 31st - 6th February

  • Master
    • DRW: Add DRW_UNUSED_RESOURCE_TRACKING for ubo and ssbo 7b88a206b25.
    • DRW: Add compute_ref calls, barriers calls, and vertex_buffer_ref 9aa25ff53d9.
    • DRW: Add preprocessor error if including common_view_lib.glsl without draw_view 48fbf0baea8.
    • DRW: Fix a comment a5e9f9b3469.
    • DRW: Fix bug in cubemap creation in draw::Texture 665997f1cd6.
    • DRW: Fix memory leak in UniformArrayBuffer cbd23a73045.
    • Fix T95284 Workbench: "World" Cavity Type Doesn't Render Anything e7b8871d3d3.
    • Fix T95427: Crash during dragging a link in a node editor 71fff319905.
    • GL: Add all image types in binding setup. ae50527c237.
    • GLDebug: Wrap glDispatch function into our debug wrappers 96cda4da282.
    • GLShader: Fix several low importance issues dc85776b8b6.
    • GLShaderInterface: Fix SSBO using the ubo mask e5af6a0d0ff.
    • GPU: move gpu_shader_shared_utils.h to the public section of the module 26b70fce8ae.
    • GPUFramebuffer: Bump max attachment count to 8 25c50ddd090.
    • GPUShader: Add support for gpu_BaryCoord and fallback 9505af72d4b.
    • GPUShader: Add support for vertex shader gl_Layer and fallback 9e42b9827ac.
    • GPUShader: Cleanup dependency system to not remove string allocation 671fb286abd.
    • GPUShader: Expose create_info getter 7475f7b0ded.
    • GPUShader: Improve builtins support in GPUShaderCreateInfo 9bbfade7721.
    • GPUShader: Improve error/warning logging experience c017820692a.
    • GPUShader: Rename createInfo storage Qualifiers f39ade9e00f.
    • GPUShaderCreateInfo: Add duplication error checking of dependency merging 085a3662dd6.
    • GPUShaderCreateInfo: Merge changes from eevee-rewrite 77d005ea367.
    • GPUState: Add more barrier types 03fbb3de243.
  • 3.1 Release
    • Fix T95278: Crash on startup because of GLSL recursion 83b6c8f2b1e.
    • Fix T95284 Workbench: "World" Cavity Type Doesn't Render Anything 8e0763827e3.
    • Fix T95427: Crash during dragging a link in a node editor 080dd18cdf8.
    • GL: Fix compute shader label error 7bdfce687b5.
    • GPU: Debug: Avoid double printing of compilation issues 3a90f93507a.
    • GPU: Enable CLOG for gpu when --debug-gpu option is set edc0e77afe4.
    • GPU: Fix assert when running without --debug-gpu option on older GL 8be20fcc611.
    • GPUTexture: Fix missing/wrong cases in to_data_format() f2087dfc695.
    • Workbench: Fix unreported heavily quantized mesh due to driver issue 260e6fd46b6.
  • Eevee Rewrite
    • BLI_float4x4: Add << operator and add ATTR_WARN_UNUSED_RESULT to identity() 26f413d1f80.
    • Cleanup: common_hair_lib.glsl: deduplicate functions definitions a0c8c932fbc.
    • Codegen: Fix memory leak af49f0022a6.
    • DRW: Add draw_gpencil info for gpencil geom type 6f3a1194645.
    • DRW: Add preprocessor error if including common_view_lib.glsl without draw_view 112c4345a35.
    • DRW: Fix heatmap_gradient function messing error line number e5dcd917550.
    • DRW: Make use of shader shared header 5c9ce9d066c.
    • EEVEE: Add back support of raytrace_resolve_lib.glsl 81502a99b53.
    • EEVEE: Add material shader tests in the form of unused createInfos e167c1cb896.
    • EEVEE: Finish implementing GPUShaderCreateInfo and fix compilation 088fc410d93.
    • EEVEE: Fix assert caused by division by 0 e654975b1eb.
    • EEVEE: Fix compilation on amdgpu-pro e58b397a2ae.
    • EEVEE: Fix dependencies to draw_view 03be5c41401.
    • EEVEE: Fix float4x4 usage a3f79499b28.
    • EEVEE: Fix frustum_planes/corners references f7cbd80bd9c.
    • EEVEE: Fix missing gpu_Layer in probe filter 9d44753ab8b.
    • EEVEE: Fix missing resource binding b253532fa74.
    • EEVEE: Fix missing weight socket on multiple nodes f6d1ba82351.
    • EEVEE: Fix more float4x4 issues 9d53e0cb072.
    • EEVEE: Fix more shader compilation issues e9fe318e8e2 314f5b20d51 8af5e2d246e 78e9d829de2.
    • EEVEE: Fix some broken renaming 47171514952.
    • EEVEE: Fix uninitialized texture issue. d02a3b4aeb6.
    • EEVEE: Use GPUShaderCreateInfo 08439aebf10.
    • Fix clang-tidy 484c97707f3.
    • GL: Fix compute shader label error a9fa50b6fbb.
    • GLDebug: Wrap glDispatch function into our debug wrappers 74a0a851814.
    • GLShader: Add array macro 7073959d483.
    • GLShader: Fix image declaration a9a045fd2d8.
    • GLShader: Fix warning about ARB_conservative_depth even if the GL version supports it b2d3960dc13.
    • GLShaderInterface: Fix SSBO using the ubo mask 2f9a7d536d7.
    • GLShaderInterface: Fix missing in builtin SSBO support ac9dd503841.
    • GPU: Debug: Avoid double printing of compilation issues 6f531aba948.
    • GPU: Enable CLOG for gpu when --debug-gpu option is set 94b35f9e9de.
    • GPU: Rewrite the function library system 792e3fc6ed7.
    • GPUCodegen: Port to use shader create info f39acfc874c.
    • GPUCodegen: Remove use of gpu_data_type_to_string 86ef6da8344.
    • GPUShader: Add better error message in case of incorrect dependency name 45885eaea3f.
    • GPUShader: Add optionnal dependency display in b2b1c0102c2.
    • GPUShader: Avoid double typedef source inclusion c785a8e1661.
    • GPUShader: Fix issue when error row is 0 31133d22b6a.
    • GPUShader: Improve error logging to support source:row layout bcd635e5496.
    • GPUShader: Remove some non useful error lines from log 6f16ca39a20.
    • GPUShaderCreateInfo: Add automatic resource location 8a20e3f229a.
    • GPUShaderCreateInfo: Add basic debug print support 0f964142b9c.
    • GPUShaderCreateInfo: Add duplication error checking of dependency merging 3b812973fa7.
    • GPUShaderCreateInfo: Fix strange crash when using std::cerr 76a4fb223ef.
    • GPUShaderLog: Add filename before error to improve debugging 249717f394c.
    • GPUTexture: Fix missing cases in to_data_format() ee6fafc6156.
    • GPUTexture: Fix missing cases in validate_data_format e3f475c17c8.
    • fix merge 9c6ceb45037.


Week 263 : 24th - 30th January

  • Master
    • BLI_float4x4: Add operator[] 423bbbbaaec.
    • BLI_string_ref: Add back missing rfind() e729abb0e20.
    • D13910: Workbench: Port shaders to use GPUShaderCreateInfo 5b299e5999e.
    • DRW: Fix DRW_gpu_wrapper.hh 658ae5d63f5.
    • DRW: Fix builtin uniform name mismatch 57dfec79f4a.
    • DRW: Fix some issues with DRW_gpu_wrapper.hh a21f1e81e07.
    • Fix crash on older platform due to unsupported clear command d518550c46d.
    • GLFramebuffer: Add assert to check if framebuffer has the expected data 6c483479b82.
    • GLShader: Fix buffer overflow caused by workaround uniform 2637f943583.
    • GLShader: Fix crash caused by redundant uniform declaration c4bedeb0186.
    • GLShader: Fix fallback to gl_BaseInstance 6c25aabddfb.
    • GLShaderInterface: Fix interface from createInfo not setting bindings 083de503ce0.
    • GPUShader: Abort in case of dependency issues. da848b7440a.
    • GPUShader: Add GLSL source modification pass to support enums b42adab3a2b.
    • GPUShader: Add optionnal single shader stage interface for in and out 33ba298b5db.
    • GPUShaderCreateInfo: Add optionnal check for optimized out resources 0379ddac7d6.
    • GPUShaderCreateInfo: Remove push_constant indexing 5abab0a41a0.
    • LShaderInterface: Fix interface binding with UBO containing arrays 4d799db72f9.
    • Workbench: Use GPU_ARB_gpu_shader5 instead of GL variant c89d6b09530.
  • 3.1 Release
    • BLI_float4x4: Add operator[] 423bbbbaaec.
    • BLI_string_ref: Add back missing rfind() e729abb0e20.
    • D13910: Workbench: Port shaders to use GPUShaderCreateInfo 5b299e5999e.
    • DRW: Fix DRW_gpu_wrapper.hh 658ae5d63f5.
    • DRW: Fix builtin uniform name mismatch 57dfec79f4a.
    • DRW: Fix some issues with DRW_gpu_wrapper.hh a21f1e81e07.
    • Fix T95278: Crash on startup because of GLSL compiler bug 0a8fa07735c.
    • Fix crash on older platform due to unsupported clear command d518550c46d.
    • Fix typos in rB0a8fa07735cdb89081b652c032c73863e34f8ff1 afdc35b6367.
    • GLFramebuffer: Add assert to check if framebuffer has the expected data 6c483479b82.
    • GLShader: Fix buffer overflow caused by workaround uniform 2637f943583.
    • GLShader: Fix crash caused by redundant uniform declaration c4bedeb0186.
    • GLShader: Fix fallback to gl_BaseInstance 6c25aabddfb.
    • GLShaderInterface: Fix interface from createInfo not setting bindings 083de503ce0.
    • GPUShader: Abort in case of dependency issues. da848b7440a.
    • GPUShader: Add GLSL source modification pass to support enums b42adab3a2b.
    • GPUShader: Add optionnal single shader stage interface for in and out 33ba298b5db.
    • GPUShaderCreateInfo: Add optionnal check for optimized out resources 0379ddac7d6.
    • GPUShaderCreateInfo: Remove push_constant indexing 5abab0a41a0.
    • LShaderInterface: Fix interface binding with UBO containing arrays 4d799db72f9.
    • Workbench: Use GPU_ARB_gpu_shader5 instead of GL variant c89d6b09530.
  • Eevee Rewrite
    • Comment eevee_raytrace_resolve_lib out to avoid compilation errors for now 1f2b3cdd730.
    • EEVEE: Fix compilation issues ea214f128e4.
    • EEVEE: Make use of DRW_gpu_wrappers 848d35c57e1.
    • EEVEE: Make use of float4x4 instead of float[4][4] and rename vectors ea577c499ff.
    • EEVEE: Make use of new DRW_gpu_wrapper.hh instead of eevee_wrapper.hh 37cfceb7eb5.
    • Fix MainView constructor error on GCC < 9.4 9cc6d1dc32a.
    • Fix NaN compilation error on MSVC 8e7b535ce66.
    • Fix linker error on gpu_shader_builder.cc 1f503d2ef5f.
    • Fix missing glsl file in cmake file 39c7e19d434.


Week 262 : 17th - 23rd January

  • 3.1 Release
    • GPUShaderCreateInfo: Add manual validation of bindpoints e774f2c901f.
    • GPUShaderCreateInfo: Rework geometry shader layout support 8a23d91a509.


Week 261 : 10th - 16th January


Week 260 : 3rd - 9th January

  • Info

Worked on refactoring the vector type to use templating to deduplicate code.