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

Attendees:

  • Clement
  • Jeroen
  • Michael
  • Miguel
  • Thomas

Metal backend

  • Stabilizing the metal backend when using Python add-ons and scripts. BGL directly wraps OpenGL API what will not work when Metal backend is active. As OpenGL library isn’t loaded it would crash blender. There were some ideas how to solve this. One was to activate both the OpenGL backend and the Metal backend, so the crashes didn’t occur, but users won’t see the effect. Other option was to block any calls to the OpenGL API when no OpenGL backend is active. We decided to go for the last option. We also made sure that the template scripts and scripts in the manual work when using the Metal backend. Those scripts use the gpu module in stead of the bgl module.
  • Fix T103433: Ensure Metal memory allocator is safe for multi-threaded allocation. Resolves crash when baking indirect lighting. D17018
  • During review, many patches are dependent, but sometimes not obvious what the order are.
    • Compositor patch first, before the other patches.
    • Michael will describe the dependency-chain of the patches.
  • More focus to AMD issues will also commence.
  • A patch is in the making that improves the startup times. The patch makes changes to CMake configuration that requires more people to look at about what is wise to do. The patch will be uploaded as draft that can be discussed with people taht have more experience with CMake. Note that Blender does deviate from CMake standard by having many wrappers, and there is no documentation how to structure CMake files. Mostly is just being done by looking at other files.

Workbench-next

  • Went through the Workbench commits of the last months, to avoid Workbench Next regressions:
  • Fix for instance resource indexing in the new Draw Manager D17069.
  • Add Freeze Culling support to Workbench Next (rB3a06bb5e45e6).
  • Avoid creating unneeded handles in Workbench Next (optimization) (rB15b2caab21ab).
  • Some improvements are still being worked on
    • Avoid runtime.bb allocation for DupliObjects in the draw code (needs feedback) (rBa9d716fa0fe3).
    • Use smaller ObjectBounds to improve performance (includes fixes) (needs feedback) (rB693dffb7b7c1). During the meeting we went more deeper into how whta the original ideas of the bounds were. Initially it was the idea to also support skew objects, but that hasn’t been used yet. Will be discussed futher outside the meeting.
    • Cleanup the GLSL intersection code (needs feedback) (rB2da005902f43).

Eevee-next

  • Backporting changes to master that were local to the eevee-shadow branch.
  • Fixing remaining issues on shadows, most of them are now fixed. Transparent objects is costly as it requires a second pass, other option was bounding boxes, but wasn’t robust enough especially near the near-clip plain. Currently a limitation, and we need to find a solution for it down the road.
    • Other limitation: Shadows are on par with old implementation, but some are lacking due to missing contact shadows and soft shadows. Might give the impression that new are worse than the old one.
    • Bug on AMD pro driver on linux (at least), that prevents OpenGL error when binding multiple texture views of the same texture where each texture view covers one layer of the texture. In this case the driver doesn’t want to bind the texture.
      • Depth of field
      • Shadow of field (might can get a work-a-round)
      • Need to check if this is supported by Metal
13 Likes

Would it be helpful if I took a look? I could check out a branch and do the same porting work I have done for the last half year while updating the branch?

Anyway, if there are specific problems/questions let me know…

Hi @Baardaap!
The links got swapped (I’ve updated them in the original post), the actual fix is this one:
https://developer.blender.org/rB1b5a594a0529bf696caa419f26ac34712b5caeb0

The fix is quite straightforward and it’s just a copy of the change done in the current Workbench engine, so I think everything should be fine already?

1 Like

looks fine, yes.

Glad it wasn’t too much hassle.

1 Like

I played around with the experimental version of Workbench Next a bit. Is rendering of points/pointcloud supposed not working at the moment? I see neither the task nor the commit message mentions it.