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:00Z → 2023-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 thebgl
module.- Block
bgl
calls when when metal backend is active. (Blender Archive - developer.blender.org) The user is presented with a pop-up telling that one of the Python scripts/add-ons is using OpenGL and should be migrated to use thegpu
module. - Read from unallocated memory msl_patch_default.
- Attribute list in shader interface isn’t updated when using Metal D17042
- Block
- 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 (Add Freeze Culling support · 3a06bb5e45 - blender - Blender Projects).
- Avoid creating unneeded handles in Workbench Next (optimization) (Don't create an extra handle for shadows · 15b2caab21 - blender - Blender Projects).
- Some improvements are still being worked on
- Avoid runtime.bb allocation for DupliObjects in the draw code (needs feedback) (Optimization: Draw: Avoid runtime.bb allocation for DupliObjects · a9d716fa0f - blender - Blender Projects).
- Use smaller ObjectBounds to improve performance (includes fixes) (needs feedback) (Use smaller ObjectBounds · 693dffb7b7 - blender - Blender Projects). 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) (Draw: Cleanup the GLSL intersection code · 2da005902f - blender - Blender Projects).
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