2023-09-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: October 2, 2023, 11:30 AM to 12:00 PM Amsterdam Time (Your local time: 2023-10-02T09:30:00Z2023-10-02T10:00:00Z)

Attendees:

  • Clement
  • Jeroen
  • Michael
  • Miguel

EEVEE-Next

  • Fixes for irradiance grid has been made, PR should still be extracted from the development branch
  • Metal shadow implementation
    • The Metal version we are targeting doesn’t support texture atomics, which is required for Shadow rendering. For tile-renderer based GPU there is a new approach in development that improves performance on Apple Silicon. Intel/AMD GPU still need a work around by emulating texture atomics.
    • Metal 3.1 would support texture atomics, but would require a higher OS version. There are some options to still consider as we don’t want to push users into an OS update.
    • Parameter buffer issue when GPU is flushes as to much geometry is drawn.
  • SSS compatibility issue, refactored SSS pipeline to compute shaders. Needed to refactor the deferred pipeline. Replace stencil buffers with a uint buffer. The previous version updated the stencil buffer for each object, the new approach does this on pixel level. Can have some additional performance increase as only pixels are updated that needs to be updated. When using a graphics pipeline all pixels needs to be updated that the geometry touches.
  • Added Screen Space indirect diffuse. So we now have a SSGI prototype even if not performant.
  • Worked a bit on shadows and checked what could still be improved and what not. Added a parameter for soft shadow scaling.

State of EEVEE-Next. Plan is to merge it at the start of BCon1 of Blender 4.1. Feature wise it might happen, but there are still some bugs that would let it slip. Bugs include volume, reflection probes workflow and performance regressions and Intel ARC support.
Ideas for performance we are thinking of a fast-path that disables raytracing or other features. Other ideas is to render immediate buffers in a smaller resolution.

Blender 4.0

  • --debug-gpu-force-workarounds was broken and has been fixed. There are still some workarounds that should be removed as the features are OpenGL 4.3 compliant.
  • Partial GPU Texture was broken for Byte textures with Non-color color spaces

Vulkan

  • Tested how the Vulkan back-end is holding up with EEVEE-Next and Cycles.
    • Basic EEVEE-Next is working. Shadows/Lights are failing.
    • It is not possible to import Cuda buffers in Vulkan. How Cycles is currently organized it should allocate the VkBuffers and import them in Cycles.
  • Implemented frame buffer blitting for depth/stencil textures. Had to work around issues where this isn’t supported on AMD platforms
  • Implemented a basic GPU Query pool. All geometry for the occlusion queries should happen in a single command buffer submission. Current approach is to target Overlay-next as it doesn’t use occlusion queries and make sure that widgets are drawn in a single command buffer submission.
21 Likes

Will we get the Shader to RGB node implementation for the Next version?

Works nice, but there is something wrong with denoiser. Lamp with emissive material / 256 samples / Raytracing set to split with 1 spp for reflection and diffuse. Screen tracing precision set to 1.

UPDATED:

EEVEE:

EEVEE-Next denoised:

EEVEE-Next without denoiser:

Cycles (Ground Truth):

@JohnDow Nice test! do you mind creating a report at projects.blender.org for the denoiser? Thanks

3 Likes