2022-09-26 Eevee/Viewport Module Meeting

Practical Info

This is a weekly video chat meeting for planning and discussion of Blender Eevee/viewport module development. Any contributor (developer, UI/UX designer, writer, …) working on Eevee/viewport in Blender is welcome to join.

For users and other interested parties, we ask to read the meeting notes instead so that the meeting can remain focused.

  • Google Meet
  • Next Meeting: October 3, 2022, 11:30 AM to 12:00 PM Amsterdam Time (Your local time: 2022-10-03T09:30:00Z2022-10-03T10:00:00Z)

Attendees:

  • Michael Parkin-White
  • Omar Emara
  • Clément Foucault
  • Jeroen Bakker

EEVEE-Next

  • Most time last week went to patch review and Metal backend. Not much progress has been made on the Shadowing system.

Metal Backend

  • Outstanding patches have been committed.
  • Next patch would be to enable the Metal backend. Initial only shaders that use the create info would be supported.
  • After that it is expected to fix several issues.
  • Question was how to get feedback from users:
    • Metal backend will be available as an experimental feature/startup flag in daily builds. It won’t be available in an official release just yet as it is known to have some limitations.
  • Patch added that would use Cycles in the viewport use python GPU modules. [⚙ D16042 Cycles: Live viewport display driver modified to use GPU Module.]

Eevee const-shaders

  • Patch is in review/discussion [⚙ D16017 Eevee: GPU Material node graph optimization.]. Results in performance are good, but there are some open topics to be discussed. During the meeting we brain-stormed a bit how to handle those topics.
    • Caching of const shaders are currently not available. Perhaps the shader cache should be split into two separate caches. A global cache for unoptimized shaders and a local per shader cache for optimized shaders.
    • Delay of const shader compilation could lead to stuttering. Currently this isn’t noticeable, but there is still the risk that the pipeline isn’t available.
    • The pipeline compilation should happen async and the available pipeline should be chosen. Pipeline creation is an additional step that happens when using a shader.
    • Final image rendering currently doesn’t use optimized shaders. It could benefit from it depending on the scene and number of samples. This might need more design work when the optimized version is used and the control that a user has over this. Especially when doing background rendering.
    • How to handle animated materials and tweaking of material values. In this case const shaders might be an overhead and caching might flood with many unused shaders.

Viewport Compositor

  • Initial fast gaussian blur implementation has been done.
    • Using a single iteration is much faster, but doesn’t follow the gaussian falloff as expected.
    • Before finding a fix we should get community feedback on the topic.
  • In the meantime Omar wants to implement other nodes.

Volumetric issues

  • After implementing the work-around Eevee only accepted up-to 8 textures per material. The reason is that enabling workarounds is a global option and enabled many workarounds.
  • For the volumetric issue only the SSBO should be disabled. Blender now has a specific startup argument to disable SSBO usage (--debug-gpu-disable-ssbo) [rB0210c4df1793]
  • Added detailed info to system_info.txt which features are actually selected by the backend to be used by Blender. [rB6075b04cf970]
8 Likes

Is this patch something more general or Apple/Metal only thing?

1 Like

This patch works on any platform.

1 Like

But note that the amount of performance improvement will vary by GPU and driver (probably by a lot). It will need to be tested.

1 Like

Thanks for the responses. Looking forward to test it when it’s ready.