2024-07-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: July 15, 2023, 11:30 AM to 12:00 PM Amsterdam Time (Your local time: 2024-07-15T09:30:00Z2024-07-15T10:00:00Z)

Attendees

  • Clement
  • James
  • Jeroen
  • Miguel

EEVEE

  • Many bugs are being fixed in many areas
  • There are still discussions on making parallel compilation default. Concerns is that enabling it on low end hardware can be much slower (3x), the technical difficulty of the solution and that it is working on all platforms. Improvements are still being made. The root cause of the slow down isn’t clear at the moment. Might be related to how OS’s schedule between processes, or that some shaders block the UI.
  • There is a regression where rendering using parallel compilation during final image rendering, blocks the UI and adds more slowdown than expected. We need to check if we are actually disable parallel compilation or that there is an bug causing this regression.
  • We didn’t receive any bugs on parallel compilation on Intel based GPUs. It could be that they don’t enable the feature, or that there are not enough people testing it. We will check on the hardware we have available if there are bugs to be expected.
  • Normal and depth pass are not accumulated correctly
  • Metal/AMD has been triaged to two bad depth texture generation. Advice is asked to AMD how to proceed.
  • Release notes have been updated with the known platform support issues.

Vulkan

Last weeks, the feature parity and stability of the Vulkan backend improved a lot. We are able to remove ‘all’ training wheels and check how the performance bottleneck shifts. The bottleneck shifted to Descriptor sets.

Although the descriptor set is the only solution available on all platforms, it is known to be a not optimal design and many extensions have been created to fix this. Sadly there is no extension that support all our devices. To work around this we will select the best extension for Blender and use it when the system supports it. Most likely the chosen extension will be VK_EXT_descriptor_buffer [vulkan proposal]

There are some synchronization issues left to handle. However in the original design of the render graph we decided to not support state tracking of sub-resources, but EEVEE currently requires it. This can be implemented in two places: inside the resource tracker as a global solution, or as part of the command builder where a rendering scope can track this.

10 Likes