Developer Forum

2023-01-16 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: January 23, 2023, 11:30 AM to 12:00 PM Amsterdam Time (Your local time: 2023-01-23T10:30:00Z2023-01-23T11:00:00Z)

Attendees:

  • Clement
  • Jeroen
  • Michael
  • Miguel

Metal backend

  • Meeting on what is needed to make the Metal backend the default backend on Apple devices.
    • Currently Blender could crash on startup, when enabled add-ons use OpenGL directly via python bgl module.
    • We need to give add-on developers time to update add-ons.
    • Startup time when using Metal back-end should be improved. This is important, but we don’t consider this as a show stopper for the first release. It is important as Blender doesn’t have a splash screen. But we find the improvements and stability Metal provides more important than the experienced delay.
      • Note that there are several patches in the making that would improve the startup time.
      • We also discussed of splitting GPUShader compilation into 2 stages, similar to Vulkan. Where the front-end stage can be done at compile time, and the back-end (platform specific) part can be done when starting Blender.
    • Currently the shader cache is stored inside the application DMG. This should be modified to use a temp application location.
    • Enable Viewport compositor when using Metal backend. This requires Metal backend to support compute shaders and SSBOs. (⚙ D16990 Metal: Realtime compositor enablement with addition of GPU Compute.)
    • In the week of 16-21 January a development sprint will be conducted, focussing on stabilizing bgl. Any calls using the bgl module will trigger a Python error, and should not crash Blender.
    • The mind set would be to think, why the Metal back-end cannot be the default back-end.
      • One reason would be that add-on developers didn’t port to gpu module just yet, and now it becomes a hard requirement to run on macOs.
  • On short term stabilizing Metal is continuing. Focus will be to test the python GPU module using Metal.
  • Material (shader optimization patch)
    • Unsure to add the patch for this release. Perhaps we could make it Metal specific feature for now. Discussion will continue after meeting.
  • Next developments
    • SSBO’s could be finished for 3.5.
    • Indirect draw (required for new draw manager) would be planned for 3.6.

Workbench-next

  • Going through the review process for Workbench Next (⚙ D16826 Workbench Next), implemented the requested changes.
  • Fixed the compute-based culling and the Debug Freeze feature in the new draw manager. (uncommitted)
  • Worked on overall optimizations in the new draw manager. (uncommitted)
  • Idea is to have Workbench-next in master what has to be enabled as experimental option.

Matrix CPP Api

  • Unable to mix the old and new API. Old API is used in many headers, so there is a dependency hell. Clement will spent one dat this week to replace the old API usage to the new API.
  • Unsure how to deal with Eevee (not next).

Eevee-next

  • Made some progress on shadowing system in Eevee-next (directional and local lights)
    • Memory optimizations are planned and there are still glitches on page boundaries.

NPBR-workshop

  • We want to organize a work-shop about NPBR in Blender. We are currently still organizing it. First we were targetting it to happen early February, but due to all the stuff happening it would be better to reschedule it to March.
16 Likes