Note: This is an archived version of the Blender Developer Wiki (archived 2024). The current developer documentation is available on developer.blender.org/docs.

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 23bbc0d748.
    • GL: Fix compilation error on MSVC 86d87fcbdb a43f3c761e.
    • GL: Fix shader error logging on Apple M1 hardware ab97add5fa.
    • GPU: ShaderBuilder: Fix compilation on Mac 664eb19369.
    • GPU: ShaderBuilder: Skip shader compilation for unsupported shaders. 6073b6b874.
  • Eevee Rewrite
    • EEVEE: Move Closure definitions to gpu_shader_codegen_lib.glsl f4dab64487.

Week 270 : 14th - 20th March

  • Master
    • DRW: Add new texture from pool acquire/release mechanism d7ecd4a0f3.
    • DRW: Add simple texture view wrappers to draw::Texture 0f08453ea9.
    • DRW: Add support for GPUStorageBuf 2580869901 8c93f8c6cc.
    • DRW: Add support for compute indirect command. e5c2bfb341.
    • DRW: Expose stencil view in gpu_wrapper c509a12fd8.
    • DRW: GPU wrappers: Some quality of life improvements dbf1e7c07f.
    • DRW: Introduce GPencil common GLSL library 3eaf345352.
    • DRW: Make use of shader shared header 6ae03375b6.
    • DRW: Port improvements in common_math_lib.glsl from eevee-rewrite 472fc0c558.
    • EEVEE: Add new experimental "EEVEE Next" option 59f53f5802.
    • GL: Add missing format in image layout conversion 081255671a.
    • GL: Add StorageBuf implementation bacfd55a0e.
    • GL: Check texture framebuffer feedback only if not using compute pipeline. 054957659f.
    • GLShader: Fix two small issues with compute shader generated code 374cb32d4a.
    • GPU: Add indirect dispatch support. d7df0dcccb.
    • GPU: Add support for stencil buffer texturing mode. 93bf17d952.
    • GPU: StorageBuf: Add method to clear the buffer in place. 7ee816e32f.
    • GPUShader: Fix crash when compilation error is a linking error 4544761a2d.
    • GPUShaderCreateInfo: Add explicit early_fragment_test 3f484c502f.
    • GPUSource: Fix failure case in the enum preprocessor 36b02c3815.
    • GPUTexture: Add Cube view as 2D array 16dd382f06.
    • GPUTexture: Expose layer & mip count 3b75ca2f60.
    • GPUTexture: Fix bug in texture view creation 935136f844.
    • GPencil: Port shaders to ShaderCreateInfo eccb0b222e 568c453ff3 84a0e04296 337343ecc9.
  • Eevee Rewrite
    • DRW: Add support for compute indirect command. fd57ab3dd8.
    • DRW: Expose stencil view in gpu_wrapper ebd50e7f3a.
    • DRW: gpu wrappers: Fix compilation in release mode 3bc270327d.
    • EEVEE: Fix race condition in HiZ downsample shader 36e355e1ad.
    • EEVEE: Material: Fix issue with DRWShadingGroup reuse. 7dd40c8ae8.
    • EEVEE: Raytracing: Add back denoising step 3aac5c92bb.
    • EEVEE: Refactor indirect lighting pipeline to use compute 9e30590eab.
    • EEVEE: Speedup: Add subsurface scattering bypass on principle BSDF 6cc40796af.
    • EEVEE: Use compute shaders for lightprobe related filtering 007d4c9e0f.
    • GL: Check texture framebuffer feedback only if not using compute pipeline. 00caf993f2.
    • GPU: Add indirect dispatch support. 91c5dd21a2.
    • GPU: Add support for stencil buffer texturing mode. 2bcf75d6cc.
    • GPU: StorageBuf: Add method to clear the buffer in place. 01118f0e53.
    • GPUCodegen: Add comment on the pass hash first check c50ba2f778.
    • GPUCodegen: Fix missing dependency of some nodes to object infos 8e7e51bc2f.
    • GPUMaterial: Fix compilation error when shader use bump nodes 43529aaff3.
    • GPUMaterial: Fix missing thickness output link 4e3148a547.
    • GPUTexture: Add Cube view as 2D array ab3f66d7c8.


Week 269 : 7th - 13th March

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


Week 268 : 28th - 6th March

  • Eevee Rewrite
    • EEVEE: Deferred: Large refactor 58e2ec18ae.
    • GL: Add missing format in image layout conversion fbf4d8f8b5.
    • GPUShaderCreateInfo: Add explicit early_fragment_test d471c7d1c2.


Week 267 : 21st - 27th February

  • Master
    • GPU: Fix compilation in debug mode 8d83fc552a.
    • GPUTexture: Add support for texture view 7d7dd66ba7.
    • GPUTexture: Use immutable storage e59f754c16.
    • OCIO: Fix bool1 vs. bool comparison warning. 2f951667c0.
    • OCIO: Fix mip length in texture creation 1685b1dba4.
  • Eevee Rewrite
    • DRW: Add simple texture view wrappers to draw::Texture fd82cf7099.
    • EEVEE: Fix no shadow option faf5333f0f.
    • EEVEE: Shadow: Improve the case of directional shadowmaps in ortho view 7de7a1a5cf.
    • EEVEE: Simplify Hi-Z pass by porting it to a single pass compute shader 688d2eb6e7.
    • GPUTexture: Expose layer & mip count 1304db6c52.


Week 266 : 14th - 20th February

  • Master
    • BLI: Fix compilation error caused by rBa9f023e22638 a6267f1167.
    • GLCompute: Apply state before dispatch 302c74e596.
    • GPU: Remove runtime sampler texture slot assignment 8355ac97b4.
    • GPUTexture: Add dimensions getter d3b1cce400.
    • OCIO: Port shader creation logic to use GPUShaderCreateInfo 16d5658365.
    • OCIO: Port shader creation logic to use GPUShaderCreateInfo 37fa1bc254.
  • Eevee Rewrite
    • DRW: Add optional name to storage buffers 70ec3d3a3e.
    • DRW: Debug print: add support for multithread printing 2903c11c93.
    • DRW: Debug: Print fix missing last argument and support function call 9e0a2386cf.
    • DRW: Port draw_debug_lib to shader info 30bbd01fe0.
    • EEVEE: Fix build on MSVC 5247b5aeda.
    • EEVEE: Fix forward material not appearing. 47b72c8e67.
    • EEVEE: Fix glossy filter 943315d16c.
    • EEVEE: Fix shader compilation e65f8c2579.
    • EEVEE: Fix some GL errors and missing binds 6c97a2eee8.
    • EEVEE: Fix use_scene_lights option f0c75976d7.
    • EEVEE: Improve shadow debug a082189c1d.
    • EEVEE: Shadow: Add debug visual for the page cache 24272c7780.
    • EEVEE: Shadow: Add render page list to simplify the execution model 471ea14ec1.
    • EEVEE: Shadow: Avoid loosing cached tiles updates in LOD levels b75279e19b.
    • EEVEE: Shadow: Avoid missing a load because of float imprecision 871c538509.
    • EEVEE: Shadow: Fix defrag phase 0451d556c2.
    • EEVEE: Shadow: Fix out of bound access in page_list stage 35ebf6cf02.
    • EEVEE: Shadow: Improve debug fbf0c0e02b.
    • EEVEE: Shadow: Revisit the cache system 5a20ef35b3.
    • EEVEE: Shadow: Use debug_view for debug pass 04b49d5678.
    • EEVEE: Shadows: Compute max tile LOD visibility e3793186c0.
    • EEVEE: Shadows: Fix 2 small imprecision 5d27a78917.
    • GLStorageBuf: Fix wrong enum for debug name 74bca81507.


Week 265 : 7th - 13th February

  • Eevee Rewrite
    • DRW: Add new draw_debug_print_lib.glsl a02eee7e98.
    • DRW: Add null resource check instead of crashing 311f8ba794.
    • DRW: Add support for GPUStorageBuf in wrappers dd6ee49d05.
    • DRW: Add support for GPUStorageBuf 9c36da1c34.
    • EEVEE: Disable raytracing d73152b985.
    • EEVEE: Fix light culling light count and padd culling tile buffer 4bcc62a257.
    • EEVEE: Fix shader compilation on Nvidia driver b4b2af595e.
    • EEVEE: Fix shader not static da0a8e384e.
    • EEVEE: Remove integer division a9b0728bd4.
    • EEVEE: Split directional light path dc9e8a4075.
    • Fix compilation in release mode b284b17844.
    • GLShader: Fix two small issues with compute shader generated code 4205629ea2.
    • GPU/GL: Add StorageBuf implementation 4477ac7c8a.
    • GPUCodegen: Fix attribute having GPU_NONE gputype af82d0fec7.
    • GPUCodegen: Fix missing mat4 in function arguments 89bef5adb2.
    • GPUShader: Fix crash when compilation error is a linking error 8a9f18d72c.


Week 264 : 31st - 6th February

  • Master
    • DRW: Add DRW_UNUSED_RESOURCE_TRACKING for ubo and ssbo 7b88a206b2.
    • DRW: Add compute_ref calls, barriers calls, and vertex_buffer_ref 9aa25ff53d.
    • DRW: Add preprocessor error if including common_view_lib.glsl without draw_view 48fbf0baea.
    • DRW: Fix a comment a5e9f9b346.
    • DRW: Fix bug in cubemap creation in draw::Texture 665997f1cd.
    • DRW: Fix memory leak in UniformArrayBuffer cbd23a7304.
    • Fix T95284 Workbench: "World" Cavity Type Doesn't Render Anything e7b8871d3d.
    • Fix T95427: Crash during dragging a link in a node editor 71fff31990.
    • GL: Add all image types in binding setup. ae50527c23.
    • GLDebug: Wrap glDispatch function into our debug wrappers 96cda4da28.
    • GLShader: Fix several low importance issues dc85776b8b.
    • GLShaderInterface: Fix SSBO using the ubo mask e5af6a0d0f.
    • GPU: move gpu_shader_shared_utils.h to the public section of the module 26b70fce8a.
    • GPUFramebuffer: Bump max attachment count to 8 25c50ddd09.
    • GPUShader: Add support for gpu_BaryCoord and fallback 9505af72d4.
    • GPUShader: Add support for vertex shader gl_Layer and fallback 9e42b9827a.
    • GPUShader: Cleanup dependency system to not remove string allocation 671fb286ab.
    • GPUShader: Expose create_info getter 7475f7b0de.
    • GPUShader: Improve builtins support in GPUShaderCreateInfo 9bbfade772.
    • GPUShader: Improve error/warning logging experience c017820692.
    • GPUShader: Rename createInfo storage Qualifiers f39ade9e00.
    • GPUShaderCreateInfo: Add duplication error checking of dependency merging 085a3662dd.
    • GPUShaderCreateInfo: Merge changes from eevee-rewrite 77d005ea36.
    • GPUState: Add more barrier types 03fbb3de24.
  • 3.1 Release
    • Fix T95278: Crash on startup because of GLSL recursion 83b6c8f2b1.
    • Fix T95284 Workbench: "World" Cavity Type Doesn't Render Anything 8e0763827e.
    • Fix T95427: Crash during dragging a link in a node editor 080dd18cdf.
    • GL: Fix compute shader label error 7bdfce687b.
    • GPU: Debug: Avoid double printing of compilation issues 3a90f93507.
    • GPU: Enable CLOG for gpu when --debug-gpu option is set edc0e77afe.
    • GPU: Fix assert when running without --debug-gpu option on older GL 8be20fcc61.
    • GPUTexture: Fix missing/wrong cases in to_data_format() f2087dfc69.
    • Workbench: Fix unreported heavily quantized mesh due to driver issue 260e6fd46b.
  • Eevee Rewrite
    • BLI_float4x4: Add << operator and add ATTR_WARN_UNUSED_RESULT to identity() 26f413d1f8.
    • Cleanup: common_hair_lib.glsl: deduplicate functions definitions a0c8c932fb.
    • Codegen: Fix memory leak af49f0022a.
    • DRW: Add draw_gpencil info for gpencil geom type 6f3a119464.
    • DRW: Add preprocessor error if including common_view_lib.glsl without draw_view 112c4345a3.
    • DRW: Fix heatmap_gradient function messing error line number e5dcd91755.
    • DRW: Make use of shader shared header 5c9ce9d066.
    • EEVEE: Add back support of raytrace_resolve_lib.glsl 81502a99b5.
    • EEVEE: Add material shader tests in the form of unused createInfos e167c1cb89.
    • EEVEE: Finish implementing GPUShaderCreateInfo and fix compilation 088fc410d9.
    • EEVEE: Fix assert caused by division by 0 e654975b1e.
    • EEVEE: Fix compilation on amdgpu-pro e58b397a2a.
    • EEVEE: Fix dependencies to draw_view 03be5c4140.
    • EEVEE: Fix float4x4 usage a3f79499b2.
    • EEVEE: Fix frustum_planes/corners references f7cbd80bd9.
    • EEVEE: Fix missing gpu_Layer in probe filter 9d44753ab8.
    • EEVEE: Fix missing resource binding b253532fa7.
    • EEVEE: Fix missing weight socket on multiple nodes f6d1ba8235.
    • EEVEE: Fix more float4x4 issues 9d53e0cb07.
    • EEVEE: Fix more shader compilation issues e9fe318e8e 314f5b20d5 8af5e2d246 78e9d829de.
    • EEVEE: Fix some broken renaming 4717151495.
    • EEVEE: Fix uninitialized texture issue. d02a3b4aeb.
    • EEVEE: Use GPUShaderCreateInfo 08439aebf1.
    • Fix clang-tidy 484c97707f.
    • GL: Fix compute shader label error a9fa50b6fb.
    • GLDebug: Wrap glDispatch function into our debug wrappers 74a0a85181.
    • GLShader: Add array macro 7073959d48.
    • GLShader: Fix image declaration a9a045fd2d.
    • GLShader: Fix warning about ARB_conservative_depth even if the GL version supports it b2d3960dc1.
    • GLShaderInterface: Fix SSBO using the ubo mask 2f9a7d536d.
    • GLShaderInterface: Fix missing in builtin SSBO support ac9dd50384.
    • GPU: Debug: Avoid double printing of compilation issues 6f531aba94.
    • GPU: Enable CLOG for gpu when --debug-gpu option is set 94b35f9e9d.
    • GPU: Rewrite the function library system 792e3fc6ed.
    • GPUCodegen: Port to use shader create info f39acfc874.
    • GPUCodegen: Remove use of gpu_data_type_to_string 86ef6da834.
    • GPUShader: Add better error message in case of incorrect dependency name 45885eaea3.
    • GPUShader: Add optionnal dependency display in b2b1c0102c.
    • GPUShader: Avoid double typedef source inclusion c785a8e166.
    • GPUShader: Fix issue when error row is 0 31133d22b6.
    • GPUShader: Improve error logging to support source:row layout bcd635e549.
    • GPUShader: Remove some non useful error lines from log 6f16ca39a2.
    • GPUShaderCreateInfo: Add automatic resource location 8a20e3f229.
    • GPUShaderCreateInfo: Add basic debug print support 0f964142b9.
    • GPUShaderCreateInfo: Add duplication error checking of dependency merging 3b812973fa.
    • GPUShaderCreateInfo: Fix strange crash when using std::cerr 76a4fb223e.
    • GPUShaderLog: Add filename before error to improve debugging 249717f394.
    • GPUTexture: Fix missing cases in to_data_format() ee6fafc615.
    • GPUTexture: Fix missing cases in validate_data_format e3f475c17c.
    • fix merge 9c6ceb4503.


Week 263 : 24th - 30th January

  • Master
    • BLI_float4x4: Add operator[] 423bbbbaae.
    • BLI_string_ref: Add back missing rfind() e729abb0e2.
    • D13910: Workbench: Port shaders to use GPUShaderCreateInfo 5b299e5999.
    • DRW: Fix DRW_gpu_wrapper.hh 658ae5d63f.
    • DRW: Fix builtin uniform name mismatch 57dfec79f4.
    • DRW: Fix some issues with DRW_gpu_wrapper.hh a21f1e81e0.
    • Fix crash on older platform due to unsupported clear command d518550c46.
    • GLFramebuffer: Add assert to check if framebuffer has the expected data 6c483479b8.
    • GLShader: Fix buffer overflow caused by workaround uniform 2637f94358.
    • GLShader: Fix crash caused by redundant uniform declaration c4bedeb018.
    • GLShader: Fix fallback to gl_BaseInstance 6c25aabddf.
    • GLShaderInterface: Fix interface from createInfo not setting bindings 083de503ce.
    • GPUShader: Abort in case of dependency issues. da848b7440.
    • GPUShader: Add GLSL source modification pass to support enums b42adab3a2.
    • GPUShader: Add optionnal single shader stage interface for in and out 33ba298b5d.
    • GPUShaderCreateInfo: Add optionnal check for optimized out resources 0379ddac7d.
    • GPUShaderCreateInfo: Remove push_constant indexing 5abab0a41a.
    • LShaderInterface: Fix interface binding with UBO containing arrays 4d799db72f.
    • Workbench: Use GPU_ARB_gpu_shader5 instead of GL variant c89d6b0953.
  • 3.1 Release
    • BLI_float4x4: Add operator[] 423bbbbaae.
    • BLI_string_ref: Add back missing rfind() e729abb0e2.
    • D13910: Workbench: Port shaders to use GPUShaderCreateInfo 5b299e5999.
    • DRW: Fix DRW_gpu_wrapper.hh 658ae5d63f.
    • DRW: Fix builtin uniform name mismatch 57dfec79f4.
    • DRW: Fix some issues with DRW_gpu_wrapper.hh a21f1e81e0.
    • Fix T95278: Crash on startup because of GLSL compiler bug 0a8fa07735.
    • Fix crash on older platform due to unsupported clear command d518550c46.
    • Fix typos in rB0a8fa07735cdb89081b652c032c73863e34f8ff1 afdc35b636.
    • GLFramebuffer: Add assert to check if framebuffer has the expected data 6c483479b8.
    • GLShader: Fix buffer overflow caused by workaround uniform 2637f94358.
    • GLShader: Fix crash caused by redundant uniform declaration c4bedeb018.
    • GLShader: Fix fallback to gl_BaseInstance 6c25aabddf.
    • GLShaderInterface: Fix interface from createInfo not setting bindings 083de503ce.
    • GPUShader: Abort in case of dependency issues. da848b7440.
    • GPUShader: Add GLSL source modification pass to support enums b42adab3a2.
    • GPUShader: Add optionnal single shader stage interface for in and out 33ba298b5d.
    • GPUShaderCreateInfo: Add optionnal check for optimized out resources 0379ddac7d.
    • GPUShaderCreateInfo: Remove push_constant indexing 5abab0a41a.
    • LShaderInterface: Fix interface binding with UBO containing arrays 4d799db72f.
    • Workbench: Use GPU_ARB_gpu_shader5 instead of GL variant c89d6b0953.
  • Eevee Rewrite
    • Comment eevee_raytrace_resolve_lib out to avoid compilation errors for now 1f2b3cdd73.
    • EEVEE: Fix compilation issues ea214f128e.
    • EEVEE: Make use of DRW_gpu_wrappers 848d35c57e.
    • EEVEE: Make use of float4x4 instead of float[4][4] and rename vectors ea577c499f.
    • EEVEE: Make use of new DRW_gpu_wrapper.hh instead of eevee_wrapper.hh 37cfceb7eb.
    • Fix MainView constructor error on GCC < 9.4 9cc6d1dc32.
    • Fix NaN compilation error on MSVC 8e7b535ce6.
    • Fix linker error on gpu_shader_builder.cc 1f503d2ef5.
    • Fix missing glsl file in cmake file 39c7e19d43.


Week 262 : 17th - 23rd January

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


Week 261 : 10th - 16th January


Week 260 : 3rd - 9th January

  • Info

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