2022-07-25 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: August 1, 2022, 11:30 AM to 12:00 PM Amsterdam Time (Your local time: 2022-08-01T09:30:00Z2022-08-01T10:00:00Z)

Attendees:

  • Brecht van Lommel
  • Omar Emara
  • Clément Foucault
  • Michael Parkin-White
  • Sebastian Parborg
  • Dalai Felinto
  • Jeroen Bakker

Eevee Next

  • Fixing bugs with the new TAA. Quality is better, but still looking for other solutions. Other solutions that have been considered would impact render performance. Current solutions has some pros and cons.
    • (+) Better AA handling for textures
    • (-) Depth buffer intersects more with overlays. This should be solved by adding a larger offset to the overlay depth.
    • (+) AA flickers less. Editing in edit mode would benefit from this a lot.
    • It should also improve the curve selection overlay as the outlines would be smaller. But this hasn’t been tested as curve rendering isn’t supported yet.
  • Worked on an idea to implement render passes. Renderpasses can be vec3 that aren’t supported as rendertarget. Currently doing the conversion in CPU, but only when storing the render results. Viewport compositing could still use GPU buffers as viewport compositing works on vec4 as well.
  • More options should be shared with Cycles. For example
    • Motion vector curves
    • Camera lens (will not be supported in the first release yet).

Viewport compositing

  • Finishing up the review. Still some renamings and code style needs to be applied. Some functions needs to be replaced with safer versions.
  • Expected to land in master this week as an experimental option. (It will not be available in 3.3 builds).

Metal Backend

  • Internally testing updates on the VBuf and IBuf patches.
  • Using the ShaderCreateInfo for the metal shader cross compilation.
    • It is much cleaner than the previous shader patching
    • Some cleanups still need to happen before sending for review.
  • Shaders (like-wise) to Vulkan are compiled in two stages (front-end, back-end). The front-end stage is fast most HW-specific optimizations are done in the back-end stage.
  • Viewport is already showing workbench renders.
  • During the meeting we hinted that the developer tool ShaderBuilder can be used to speed up development. This is a compile time option that compiles every static shader during compilation. No need to start blender to find out that shader compilation is failing.

libEpoxy

  • Patch is in a state where it could be land soon. There are still some stuff to check and fix.
    • Windows testing and profiling
    • Removing gl dependency from Blender. This is a must have before landing as it would hide some issues with the patch. Eg symbols that are not being used via libEpoxy.
  • Cycles stand-alone should be updated.

Headless rendering

  • With the libEpoxy it becomes possible to implement a headless rendering mode. Some test have been done (outside Blender) and currently looking into adding this to Blender.
  • The headless rendering would still need a compilation time switch due to the way how contexts are created.
  • NVidia uses a different method than other vendors to setup render surfaces.
  • This would make it possible to enable eevee render tests and draw tests on the build farm. We doubt that viewport tests could work.
  • Headless rendering should also be possible to implement on Mac.

Nishita Sky

13 Likes