2023-05-08 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: May 15, 2023, 11:30 AM to 12:00 PM Amsterdam Time (Your local time: 2023-05-15T09:30:00Z2023-05-15T10:00:00Z)

Attendees:

  • Clement
  • Jeroen
  • Miguel

Metal backend

  • Metal backend support for Workbench-next and Eevee-next has been worked on. Workbench-next is working, but Eevee-next needs more work to get on the same level as the OpenGL backend. Currently it is possible to continue feature development using a Mac system, which was short term goal of this development.
    • Some issues were found in the backend that has been reported.
    • Irradiance cache freezes computer, unknown if it is in the Metal backend or deeper.

Overlay/selection-next

  • Removed templates from initial development. Refactored for code-clarity.
  • Started porting everything from the ‘extra’ files. Getting familiar with the engines.

Vulkan backend

  • Device is now shared between different contexts. This improves the stability as other components (including the memory manager) is shared.
  • Basic support for SRGB textures have been added. There were 2 issues with SRGB textures.
    • Not all platforms support using SRGB textures as storage buffers. Blender doesn’t use these, but tagged each texture to be usable as storage buffers. Solution was to not tag SRGB textures.
    • Added data conversion between float linear host data and SRGB encoded data. SRGB encoded textures are used in Blender to save GPU bandwidth.
  • GPU module is designed that resources can be bound without having a bound shader/pipeline. The color management pipeline uses this as well as Eevee-next. The state manager has been adjusted to track the resources and do a late binding when the shader pipeline is constructed.
  • Swap chain has been rewritten. The previous swap chain was designed around a gaming pipeline where a single function is responsible for acquiring and presenting a swap chain image on the screen. This wasn’t working as Blender’s window manager uses both independently. The new swap chain keeps track when a new image is required to make sure that during presenting the correct image is used. This still needs some tweaks in order to land in main.
  • Current state of the Vulkan backend is that immediate emulation is working and gives us a technical workable, but user unusable Blender. Advanced viewport features (used by 3d viewport/image editor) aren’t working and multi window isn’t working. The development has only been validated on NVIDIA. AMD open source driver has some color artifacts and is less stable. AMD closed source driver and Intel platform haven’t been tested at all and are expected to crash on startup.
6 Likes

Thanks for the hard work evolving Blender so rapidly! Is there any news from the meeting concerning the metal backend on Intel+AMD machines? 3.5.1 is still unstable on those platforms. Forgive me if this is not the right place for my question.

Hi! Apple is working on those issues and hope to solve them for 3.6. It takes more time then expected as the issues might have a cause in the OS/Drivers.

3 Likes

Thanks for clarifying, I’m very happy with 3.4.1 until then :slight_smile: