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

Attendees:

  • Clement
  • Jeroen
  • Michael
  • Miguel
  • Omar

Viewport Compositor

Workbench-next

Continued the work on Workbench Next Stencil Shadows:

  • Most CPU-side computations have been moved to the GPU (DRW_drawdata is no longer used):
    • Shadow volume culling is now more precise (using an extruded frustum) and has been moved to the GPU.
    • The code for the Stencil method selection (Pass or Fail) has been simplified and moved to the GPU as well. (There’s one remaining issue to be fixed when the Fail method is selected directly on the CPU side (ie. when the object is transparent or non-manifold))
    • Extrude distance is now computed directly in the Vertex Shader.
    • Stencil Shadows and In Front rendering have been updated so they work well together.

Vector/matrix data structures

  • CPP data structure patch; some discussion about the design process. During the design process the Core module wasn’t included. Patch description has been updated to include more context of the patch.
  • Start refactoring GLSL library to match BLI math (codestyle, patterns etc)

Metal backend

  • Metal cleanup patches and tweaks
  • Default textures and binding validation where the binding options don’t match.
  • Some work-arounds might have issues, that will be looked in.
  • GPU: Select GPU Backend from Preferences (Blender Archive - developer.blender.org)
    • Via user preferences the GPU backend can be switched.
    • By default OpenGL, changing require a restart of Blender. When Metal cannot be initialized, will fallback to OpenGL
    • Still requires a note that metal is experimental.
    • Based on feedback from community we can still hide it behind a experimental flag.

Vulkan backend

  • Developers can build with vulkan GLSL to SpirV compiler validation enabled. (Blender Archive - developer.blender.org)
  • MoltenVK isn’t added to libs yet. It will be added as a convenience for developers to have a single platform that can validate all GPU backends at once. Vulkan on macOs isn’t planned to be an official supported platform.

3.4.1 Release

  • Still one issue to be added.
18 Likes

I’m new to understanding the development cycle of Blender. Are these changes to the Metal Backend available in the most recent master of 3.5a? Or are they only available in a patch build?

They are currently available with a compile option. We expect this to become available in a regular 3.5 builds in a few weeks. At that time we will promote it and ask for feedback. When stable enough we will include the option in beta and official 3.5 release. If some in depth issues will be found it will only be available in alpha builds.

At that time I would love to see some community involvement to test and celebrate the work that has been done by Apple engineers and the Viewport team.

17 Likes

Can’t wait! So much gratitude to everyone involved, Apple Devs and Blender Devs, in the entire Blender Metal project.

10 Likes