owned this note
owned this note
Published
Linked with GitHub
---
tags: In Progress, EEVEE/Viewport, Minutes
---
# 2023-11-13 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **November 20, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-11-20 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-11-20 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Jeroen
* Miguel
## EEVEE
* Initial pass for the manual has been done. Shadow pipeline and light probe pipeline hasn't been documented yet and more details needs to be added.
* Several fixes surrounding UI, Normal Map, Render region and Shadowing
## Workbench
* Fixed issue with channel packed alpha and none alpha options in texture mode [https://projects.blender.org/blender/blender/pulls/114377].
## Vulkan
* Fixed flickering of workbench on Intel and AMD platforms. Cause was that the depth texture was requested from a texture pool. As Intel and AMD GPUs don't support 24 bit depth texture it was uses a 32 bit depth texture and overwrote the texture type. By doing this the texture pool always wanted to create a new texture in between samples causing the screen to flicker. [https://project.blender.org/blender/blender/pulls/114697]
* At the end of the vertex/geometry stage the depth position is retargetted so it emulates OpenGL depth clipping. This is done during shading patching. When using geometry stages, the `EmitVertex` has to be replaced with `gpu_EmitVertex` to perform the retargetting. [https://project.blender.org/blender/blender/pulls/114669]
* Grease pencil (v2) drawing is working [https://project.blender.org/blender/blender/pulls/114659]
* Fixed shadow rendering. There are some precision issues left. [https://project.blender.org/blender/blender/pulls/114673]
* Add support for devices that don't support `VK_FORMAT_R8G8B8_*` as vertex buffer format. [https://project.blender.org/blender/blender/pulls/114572]
# 2023-10-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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **November 6, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-11-06 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-11-06 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Michael
* Miguel
> Due to the Blender Conference the next meeting will be skipped.
## EEVEE
* Added mesh volume bounds estimation (https://projects.blender.org/blender/blender/commit/f79b86553a4).
* Material Pipeline Refactor (https://projects.blender.org/blender/blender/commit/2a725001d1e). Remove options for translarent objects. They should now be detected automatically
* EEVEE-Next: Rework the material panel (https://projects.blender.org/blender/blender/commit/7b97bc48d82).
* Bug fixes
* NaN artifacts caused by raytracing denoising (https://projects.blender.org/blender/blender/commit/69e85382cdb).
* Low resolution on local lights shadows (https://projects.blender.org/blender/blender/commit/439d3ae945f).
* Broken volume shadowing from sun lights (https://projects.blender.org/blender/blender/commit/454c8fd8667).
* Missing light specular contribution (https://projects.blender.org/blender/blender/commit/920005ddc0f).
* SubSurfaceScattering: Invalid buffer format (https://projects.blender.org/blender/blender/commit/58319132045).
* Allow clearing of 3D texture using the framebuffer workaround (https://projects.blender.org/blender/blender/commit/5d1489c61d5).
* Looking into regressions where dependacny update graphs aren't performed for materials
* Checking how we can convert settings from EEVEE-Legacy to EEVEE-Next automatically.
* When debugging GPU, not set variables will be set to NaN, making it easier to detect issues during development.
## Metal backend
* Adding support for existing tests cases.
## Performance
* Research has been conducted to implrove the drawing performance of many objects within the current architecture. This lead to a proposal which is currently being discussed. (https://projects.blender.org/blender/blender/issues/113771)
# 2023-10-16 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **October 23, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-10-23 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-10-23 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Michael
* Miguel
## EEVEE
* EEVEE-Next was removed from experimental. Most important features are there but there are features that are broken at this moment. There will be an effort to fix those issues during BCon1.
* Support for Planar Probes has been added.
* Paralax correction for reflection probes.
* Buttons in the property panel have been rearranged. Some panels (Volume/SSS) will still be changed.
* EEVEE-Next now support Intel ARC GPUs. (https://projects.blender.org/blender/blender/pulls/113447)
* Many fixes has been done in the area of reflection probes and shader compilation.
* Thickness output on Material output is made visible in the UI.
## Workbench
* Mostly fixing Regressions. Most were related to in front depth.
* Fixing shadows on Metal.
## Vulkan
* There is a blog post on [code.blender.org](https://code.blender.org/2023/10/vulkan-project-update/) about the project status
* Stabilization and cleanups have been done.
* Wireframe mode rendering (https://projects.blender.org/blender/blender/pulls/113141)
* Vulkan backend supports transform feedback only as an extension and hasn't been implemented in out backend. We still compiled shaders that uses transform feedback. These shaders will not be compiled anymore during validation (https://projects.blender.org/blender/blender/pulls/113655)
* Remove extension useful for development as it isn't available on a regular system. (https://projects.blender.org/blender/blender/pulls/113654)
* Added workarounds for shader viewport index output and layered rendering. (https://projects.blender.org/blender/blender/pulls/113605)
## GPU
* Fixed issue in python GPU module where scissor state changes didn't sent gl command. (https://projects.blender.org/blender/blender/pulls/113642)
* Cleanup of shader dependencies. Adding reduce_min/max/add/average functions. From now on we should not use common lib shaders in EEVEE-Next. Files that start with common mustn't be used. Same refactoring should be done for other render engines as well.
# 2023-10-09 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **October 16, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-10-16 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-10-16 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Michael
* Miguel
## Blender 4.0
* Workbench next had several performance regressions. Several changes have been made to get the performance back on par with 3.6. There is a concern that there is still an overhead er object. Which should be monitored.
* [https://projects.blender.org/blender/blender/pulls/113251]
* [https://projects.blender.org/blender/blender/commit/c6194afc41]
* Metal workbench shadows being worked on. The shadows didn't support indirect draw in Metal. Tricky to solve and requires more investigation.
## EEVEE-Next
* Refactor lighting evaluation to experiment with different shadow compositing. SSS Translucency Evaluation is extracted outside the light loop for better light evaluation.
* Some experiments are being done how to handle geometry thickness related to different effects.
* Development of planar reflection probes started. Still needs to be included into the raytrace pipeline.
* Test support is merged in main. Will help on finding regressions and artifacts on platforms. [https://projects.blender.org/blender/blender/pulls/112161]
## Metal
* During the meeting discussed how to handle SSBO read-back barriers. In the Metal backend a GPU_finish has been removed for performance reasons, that breaks test cases. We discussed about having a dedicated API for syncing between the host and device buffer. A PR will be sent in to discuss the API in more detail.
## Vulkan
* Initial Wayland swapchain has landed. Wayland clients don't have the concept of a window and the client itself is responsible. For OpenGL there is a library used `wl_egl` to keep track of the window state, but it is connected to the EGL library. For Vulkan there isn't a similar library provided. Currently Blender keeps track of the window size and the needed size for the swap chain. The performance isn't where we want it to be. In the future we need to address this by looking into specific vulkan extensions like `VK_EXT_swapchain_maintenance1`.
* Vulkan is enabled as eperimental options in main. This means that every alpha build of Blender 4.1 will have an command line option to start Blender using the Vulkan backend. This is highly experimental. More information can be found [here](https://devtalk.blender.org/t/blender-vulkan-status-report/25706/21)
# 2023-10-02 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **October 9, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-10-09 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-10-09 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Michael
* Miguel
* Omar
## Blender 4.0
* Fixed performance regression in workbench. Was related to pool textures and was fixed by adding a delay to the garbage collection.
* There is a performance regression when resizing the viewport. Fix is still in development.
## EEVEE-Next
* Metal tint for EEVEE/EEVEE Next
* Shadow tracing and SSS Refactor merged in main
* Two implementation of shadow mapping. One is more performant on Apple Silicon. Both implementation can run on all hardware, but performance would be different.
* Work continues on stabilizing and performance testing
## Vulkan
* When using `GPU_PRIM_POINTS` the shader needs set `gl_PointSize` before entering the fragment stage. Some code-paths in Blender didn't use the correct shader. The Vulkan backend will assert in case it detects a shader mismatch between shader and primitive type.
* Worked on Vulkan support when using Wayland. The challenge is that Wayland doesn't have the concept of a window and the application is mostly responsible for common window tasks like resizing. Wayland has a wrapper `wl_egl` that is used to keep track of the window size. Although EGL is a cross platform API wrapper around OpenGL and OpenGL ES and not Vulkan, after reviewing its we decided to reuse this component, as it is lightweight and provides missing pieces. [https://projects.blender.org/blender/blender/pulls/113007]
* Preparing a patch to enable Vulkan as an experimental option for Blender 4.1 alpha builds. The goal is to get feedback on its current platform support and if there are areas that we aren't aware of that isn't working. [https://projects.blender.org/blender/blender/pulls/113057]. Don't expect a usable Blender version as performance and feature parity is still ongoing.
## Compositor
* Some refactoring to speed up the performance of jump flooding. Better performance and more precision.
* Currently looking into adding full float support for the GPU compositor. For precision issues and cryptomatte. During the meeting we discussed an approach for this. The idea is to duplicate the shaders in the compositor shaders class and patch the create infos locally. As this has GPU bandwidth concerns we don't want to automatically add support for this in the GPU module.
# 2023-09-24 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **October 2, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-10-02 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-10-02 time=12:00:00 timezone="Europe/Berlin"])
*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 occusion queries and make sure that widgets are drawn in a single command buffer submission.
# 2023-08-28 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **Septembver 4, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-09-04 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-09-04 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Michael
* Miguel
* Omar
## Eevee-next
* Development on shadow tracting has continued. Limitations were detected when using large angles. Reference game engines are fixing this by limiting the angles and cube face edges artifacts.
* This is not usable for us as we want to mimic cycles as close as possible. Currently researching of jittering lights with large angles and mixing both solutions (traced shadows + jittered shadows) to the final result.
* Shadow tagging should be worked on.
* Metal backend is currently broken new shadow shaders don't compile. There is work being done to improve the rendering for tile based rendering GPUs that would also solve this issue. But we should make sure that shaders would compile always in main so we can get more feedback from users.
* Refraction shaders are now better for denoising
* Reviewed the BSnF algorithms to mimic Cycles better.
* Fixes and changes
* Landed
* Fix for incorrect object info randomness (https://projects.blender.org/blender/blender/commit/89dc2e1649)
* World shading compilation error (https://projects.blender.org/blender/blender/commit/f57a8f07c0)
* In Review:
* Fix Subsurface Scattering regression (https://projects.blender.org/blender/blender/pulls/111534)
* Add shadow bias based on depth reconstruction precision (https://projects.blender.org/blender/blender/pulls/111478)
* Move the transmittance LUT to the Utility Texture (https://projects.blender.org/blender/blender/pulls/111535)
## Vulkan-backend
* Most effort last week was spent on solving a state difference between GHOST (Blenders hardware and OS abstraction layer) and the Vulkan backend in the GPU module. Vulkan doesn't track states of textures and prefer fixed pipelines where texture layouts are controlled by using the pipelines in the correct order. Blender cannot work this way as the pipelines are created dynamic due to user input, add-ons with custom drawing and functional complexity requiring to many pipelines to manage. The issue we want to solve is to track the texture layout of textures in the swap chain. Swap chains are responsibility of GHOST, but the GPU module can change the layout of its textures when using it as a transfer target. The GPU module cannot correct they texture layout as it isn't aware of swap chain events. (https://projects.blender.org/blender/blender/pulls/111389)
* We decided to align the solution close to how Metal solved this issue by using a `present` callback that the GPU context registers to the GHOST context. Initial development started with promising results, but still requires many fixes and tweaks before it will land. (https://projects.blender.org/blender/blender/pulls/111473)
## Workbench
* Workbench-next is enabled by default. (https://projects.blender.org/blender/blender/pulls/111403)
* There is a known regression where Intel HD4000 series GPUs are unsupported. We expect that a supported GPU has at least 12 SSBO binding points. Those are needed for Eevee-next we should consider to reduce the minimum needed slots to 8 and add a message when switching to Eevee-next.
* A work-around has been added for GPU implementations that don't support texture-views. (https://projects.blender.org/blender/blender/pulls/111402)
## Overlay
* Showing wire color option in all shading modes is in main (https://projects.blender.org/blender/blender/pulls/111502)
* Removing fresnel in edit mode user preference is ready to land in main (https://projects.blender.org/blender/blender/pulls/111494)
* Both patches still need to be ported to Overlay-next.
* Removing fresnel in object mode is still under review to make sure it works for cost common cases.
# 2023-08-21 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **August 28, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-08-28 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-08-28 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Miguel
## Eevee-next
* New implementation of shadow rendering landed in main. The new implementation is faster and makes working with shadows usable. Check the pull request for detailed information what changed in the implementation (https://projects.blender.org/blender/blender/pulls/110979)
* Work started on improving the shadow implementation for Apple Silicon.
* The new implementation has some benefits when using tile rendering based GPUs.
* Work started on soft-shadows. During implementation light bleeding artifacts were detected when tracing the shadow map. Currently in investigation wht causes them.
## Vulkan-backend
* During development we detected a difference between OpenGL GLSL and Vulkan GLSL we didn't expect. When using structs as stage interfaces all attributes must share the same interpolation qualifier. Around 80 shaders in gpu, workbench, grease pencil, overlay and eevee didn't work on Vulkan as expected. After looking into different solutions we decided to not support per attribute interpolation modes for those shader. We had to patch those shaders. pyGPU wasn't effected by the changes as add-ons were not able to construct struct based stage interfaces. (https://projects.blender.org/blender/blender/pulls/111138)
## GPU Compositing
* Researching different approached for several nodes/features including Canvas transform, Pixelate and Double Edge Mask
# 2023-08-14 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **August 21, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-08-21 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-08-21 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Michael
* Omar
## Eevee-next
* New solutions for shadow rendering are being researched and prototyped. When rendering a scene most time is spent on updating the shadow textures. This lead to undesired performance. Some solutions that were looked into didn't scale to all the platforms we need to support. Other solutions would reduce the shadow quality when navigating or editing in the scene, which leads to a different kind of usability issues. A possible solution have been found and is currently being implemented and tested. We are not replacing the VSM method, but optimizing the implementation to be better suitable for our use case.
## Metal-backend
* EDR support landed in main
## Vulkan-backend
* Development on the Vulkan backend has started again. After reviewing the current state the plan is to improve the command encoding. The current command encoding is deliberatly not flexible. The problem of command encoding is now better understood (with the experience we got on using Vulkan the past half year).
* The goal of command encoding is to track the commands that are sent to the GPU and where possible reorder, combine commands or add detailed memory barriers. Eventually this would lead to faster rendering, without loosing the flexibility that is required by the user interface code of Blender.
## GPU Compositor
* A question was raised if it was possible to use a software rasterizer (LLVMPIPE) to implement the CPU part of the compositor. Discussion went into the impact and potential benefits and drawbacks with this approach.
* Current GPU module uses globally state to keep track of device features. LLVMPIPE will have a different set and this should be kept separated
* Some features might be missing and can lead to issues later on
* Approach could also be used for other cases to streamline CPU and GPU execution
* Multi device in a single application can work, but gets into context issues when using the OpenGL API. Vulkan might be a better target for this.
## Blender 4.0
* Blender BCon2 will start upcoming week. Any breaking changes will be prioritized
* Moving some settings from cycles to DNA so we won't break the API in a later Blender version
* Wireframe Fresnell patch code wise is fine, some changes have been asked on usability side.
# 2023-08-07 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **August 14, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-08-14 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-08-14 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Anthony
* Clement
* Jeroen
* Michael
* Omar
## Windows/ARM
Microsoft is executing a project that might eventually lead to supporting Windows/ARM as an official platform. After we bumped OpenGL version to 4.3 the developer of that project had some issues to actually support it on Microsoft/ARM devices. Mostly as the drivers only support OpenGL 4.2 with most extensions except the texture extension.
During the meeting we went into several scenarios and see what one would fit. On the short term we will add a work-around to Workbench-next so that the project can continue. Adding support for Eevee-next requires driver compatibility with OpenGL 4.3 or Vulkan 1.2.
Our advice is to focus on vulkan compatibility. Main concern is that hardware manufacturers might not implement full compatibility any time soon. Consequence is that Windows/ARM would not support all features in Blender. Most noteworthy Eevee.
## Eevee-next
Although we have worked hard and would have wanted Eevee-next to be in Blender 4.0 release it is currently not mature enough. Releasing it in Blender 4.0 would lead to undesired performance regressions, stability and workflow issues. We decided to target Blender 4.1 so we can have some extra months on polishing Eevee-next features. Eevee-next will still be available on alpha builds as experimental feature.
* Polished irradiance caching
## Metal-backend
* Mostly worked on fixes and Eevee-next compatibility.
## Viewport-compositor
* Adding support for anisotropic kuwahara filter. (https://projects.blender.org/blender/blender/pulls/110786)
# 2023-07-17 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **July 24, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-07-24 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-07-24 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Michael
* Miguel
* Brecht
* Francesco
## Eevee-next
* Light probes landed in main. Light probes are now updated on the fly and during image rendering are updated for each frame. Current design only supports spherical probes and most options have been removed. When they still have value they will be brought back.
* Point clouds support landed.
* SSR denoising patch added for review.
During the meeting we went over the current state of Eevee-next to find our the feasability of having this in Blender 4.0
We think that most of the features can be implemented over the next few weeks. At that time we will also communicate via
devtalk to start testing. We expect that it can lead to many bugs that we are not aware of, due to Eevee-next isn't
tested due to missing or changing features.
Currently we know of compatibility issues with Intel GPUs (both iGPU and discrete) and specific AMD platforms.
It hasn't been decided if it all fits in the schedule as due to these unknowns. When we have more insight on
stability (platform + functionality) we will make a final decision if it will be a 4.0 or 4.1 target. It is
better to have a stable system than something that will not be received well. Eevee is to important for Blender.
**Major Topics:**
- Irradiance Volumes: Much polish to be done to make it fully usable. Still needs design related to scalability.
- Reflection Probes: Working (more or less), but would need a good solution for alpha blended objects that cannot do raytrace (revert to FIS).
- Soft Shadows: A bit of an unknown as we need to trace the shadow heightfield and this has some implication with the Virtual Shadow Maps.
**Small Issues:**
- Volumetrics Shadow Support: Needs to wait for shadows to be finished as this would require shadow tracing. But can be enabled before that even.
- Object ray/bake visibility: This is needed to replace reflection probe Visibility Collection.
- Bent Normals: Ambient Occlusion needs to be integrated into Irradiance cache sampling to give correct occlusion.
- Contact Shadows: Needs to know how much distance to trace (instead of relying on user param). Otherwise, easy to port.
- Overscan: Architecture is there to support it (in viewport & render). It's just a matter to implement it.
**Compatibility support**
- Curves on Metal: This was fixed at a higher level. The PR just need a few adjustments.
- EEVEE-Next Shadows on Metal: Some out of bounds reads issues are left but otherwise good progress with workaround renders.
**UX / Polish:**
- Screen Tracing & Denoising : Still needs UI polishing.
- Material Settings: Blend modes needs to be revisited because opaque changed behavior (it can be transparent).
**Delayed features:**
- Volumetric temporal stability: Can be postponed, but would be nice target considering that EEVEE-Next is aimed to be temporally stable.
- Reflection Planes: Not planned for initial version. Might be considered a regression. But design of how to integrate them into the deferred tracing. Is the length provided in the StorageArrayBuffer specialization the initial default length, or the maximum possible? is up to discussion.
# 2023-07-10 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **July 17, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-07-17 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-07-17 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Michael
* Miguel
* Omar
* Thomas
## Eevee-next
* Light probes
* Probe cubemaps are now stored in octahedral mapping space (https://projects.blender.org/blender/blender/pulls/109559)
* Multiple probes with different resoltions are stored in a single texture (https://projects.blender.org/blender/blender/pulls/109688)
* Initial implementation details are described at (https://developer.blender.org/docs/eevee_and_viewport/eevee/modules/reflection_probes/#subdivisions-and-areas)
* Lookdev
* Initial HDRI switcher (https://projects.blender.org/blender/blender/pulls/109548) landed. It has some limitations as the change of a world is 3d viewport dependant, but scene based light volume are stored in scene level. In future more developments should be done to make sure that switching HDRI would also affect diffuse light.
* Work continued on
* In development
* SSR denoising. Solution is based on Eevee-rewrite branch and the Lumen presentation given by the developers last year.
* Hair & Curves (https://projects.blender.org/blender/blender/pulls/109833)
* Volumes (https://projects.blender.org/blender/blender/pulls/107176)
* In Review
* Point clouds (https://projects.blender.org/blender/blender/pulls/109832)
## Workbench-next
* Fixing a regression with transparency depth
* Fixing overlay composition with 'In Front' objects
## GPU Compositor
* Development of the Sunray node is still being worked on.
## OpenGL 4.3
* Blender minimum OpenGL version will be bumped soon. We will display a message to the user when running on not supported platforms, but they are still being able to start Blender. When Workbench-next is made default they won't be able to start Blender anymore.
# 2023-07-03 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **July 10, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-07-10 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-07-10 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Miguel
## Eevee-next
* World reflective light was reviewed and landed. https://projects.blender.org/blender/blender/pulls/108149. The world light is also added to the irradiance cache https://projects.blender.org/blender/blender/pulls/109516 allowing scenes to be lit by only the world.
* Ambient Occlusion patch has been reviewed and landed (AO node + render pass) https://projects.blender.org/blender/blender/pulls/108398
* Work continued on SSR and soft shadows and volumetrics https://projects.blender.org/blender/blender/pulls/107176
## Workbench-next
* Last patches landed. We will retest on different platform and bump opengl version to 4.3 before we make it default.
# 2023-06-26 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **July 3, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-07-03 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-07-03 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Michael
* Miguel
* Omar
* Thomas
## Eevee-next
* Irradiance cache landed. This is an initial version. Improvements to performance, workflow and compatibility are still expected.
* Implementation of Softshadows has started.
* Reflective light
* World cubemap is still in review https://projects.blender.org/blender/blender/pulls/108149
* Changing the HDRI in the viewport is in review, but waits for the first PR to land. https://projects.blender.org/Jeroen-Bakker/blender/pulls/5 rotation of HDRI around camera needs to be checked if this can be done for 4.0. World rotation is included in the patch
* Adding world light to irradiance cache is in review, but waits for the first PR to land. https://projects.blender.org/Jeroen-Bakker/blender/pulls/6
* Adding reflection probes are work in progress. https://projects.blender.org/Jeroen-Bakker/blender/pulls/7 Current development is focused on probe evaluation. It is still unclear how the baking workflow will look like. There are multiple solutions with different draw backs.
## Metal backend
* Root cause was found why Eevee crashes on some AMD platforms. The cause was that the compiler created an infinite loop when using floats as index. There is a patch that will be added for 3.6. https://projects.blender.org/blender/blender/pulls/109358
* Testing Eevee-next support. Still in early stage and nothing to report at this moment.
## Overlay-next
* Camera background is being worked on.
## Workbench-next
* Merge workbench once the missing features are in.
* Sculpt has been done
* Started on curve/hair support
* This will bump OpenGL support for all platforms to OpenGL 4.3. This means that Metal will also be only available on Mac platforms.
## Viewport
* Experimenting with new viewport compositor with Sergey and Brecht. Work include:
* Adding Node previews
* Improving performance
* Implementing new nodes that have been added
# 2023-06-19 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **June 26, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-06-26 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-06-26 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Jeroen
* Michael
* Miguel
* Omar
## Eevee-next
* Subsurface scattering has landed in main. [https://projects.blender.org/blender/blender/pulls/107407]
* Viewport HDRI selector is being worked on. Initial version would not support blurring.
* Modified the way how textures are bound to shaders. Eevee-next used to bind internal textures and buffers to slots upto 15, leaving the lower slot numbers for user textures. This has been switched; internal textures and buffers are now occupying lower slots, and user textures the higher slots. Freeing more slots for user textures. Slot 0 and 1 are reserved still for Grease pencil [https://projects.blender.org/blender/blender/pulls/108984]
* Improved validation messages so it is easier for developers to track the reason that raises the messages.
## Overlay-next
* Porting extra passes and shapes is in progress. Contains a refactor how render passes are organized. [https://projects.blender.org/blender/blender/pulls/109059]
## Metal backend
* Memory freeing issue in Blender 3.6 has the highest priority. There has been a first round of feedback. This week BCon4 is scheduled hence this issue will have the top priority. [https://projects.blender.org/blender/blender/pulls/108940\
* Continued with the EDR/HDR change. [https://projects.blender.org/blender/blender/pulls/105662]
## Vulkan backend
* Added support for compute indirect. [https://projects.blender.org/blender/blender/pulls/108879]
* Some experiments have been done to for device selection
# 2023-06-12 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **June 19 22, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-06-19 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-06-19 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Brecht
* Jeroen
* Michael
* Miguel
* Omar
## Eevee-next
* Code review started for GI. Overall the codebase is fine, there have been some missing features detected in the Metal backend.
* We discussed about all the open points that needs to be done before Eevee-next can be enabled for Blender 4.0
* World lighting patch is ready and needs to be approved; World lighting inside GI has been implemented, but can only be reviewed after the GI Patch has landed.
* SSS patch is ready for review.
* AO patch is waiting for the world lighting.
* Hair rendering hasn't been implemented (Both Workbench-next and Eevee-next)
* GI patch
* Other topics to be aware off
* Refletion probes development hasn't started yet. Might land after the initial enablement.
* There are concerns about the current platform availability
* Intel Integrated GPUs
* Metal backend stabilization
* More time this week will be spent on reviewing available patches.
## Overlay-next
* Everything should be in except the 'extras'. Extras is a specicial category of drawing inside the Overlay engine
* There is a design question about how to share drawing code between modules. Each object type in the overlay engine is developed as its own module. But some drawing code should be shared between onkect types.
## Metal Backend
* Mostly worked on stabilization. Fixing test cases.
* Continued with the HDR enablement patch. The setting to turn on/off HDR will be a scene setting (part of color management)
## Vulkan Backend
* Last few weeks most of the time was stepent in making sure that the Vulkan backend could be used with Workbench (legacy).
* Normals are now calculated correctly. Issue was an initialization error in the Global state manager
* Add support to attach cubemap sides to a framebuffer
* Added support to attach a specific mipmap level to a framebuffer
* Added support to update mipmaps based on the data available in mipmap level 0
* Added support to for ImageViews separatnig usage from shaders and framebuffers
* Main issue remaining is that the depth values are stored in a different range compared to OpenGL. The depth of field currently reads incorrect data and places the focus point to a different depth. This should eventually be solved but is postponed for now to work on Workbench-next support.
# 2023-05-22 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **June 5 22, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-06-05 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-06-05 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Michael
* Miguel
## Eevee-next
* Eevee-next development are a bit behind schedule. We discussed during the meeting how to address this issue. Taking over code reviews, adding more people on the development. Jeroen and Miguel are available to help, but the topic should be clear how the solution would work in order to be effective.
## Workbech-next
* Volumes landed in main. There is an issue where transparent surfaces behind volume objects are not rendered correctly that should still be investigated.
## Overlay-next
* Development continued on Overlay-next.
## Metal Backend
* Improved depth bias to reduce tile artifacts on Apple Sylicon GPUs.
* Eevee-next requires some features in the backend
* Currently baking irradiance caches fails on some devices. It isn't clear if the issues are related to the specific branch.
* Image atomics are required, but not yet supported by the backend. We should add an easy solution first and after that we have time to iterate on the approach. The idea is to add a 2d buffer for the atomics.
* Apple is narrowing down the issue why AMD GPUs can have stability issues. They is an cause found, but it is still unclear how to work around it.
## Vulkan Backend
* Adding support for Workbench. Still work in progress
* Improved stability of vulkan when descriptors where fragmented/not available.
* Add support for texture formats that uses non-standard low precision floating points. Using a template it is possible to convert from a regular float to any low precision floats and use conversions that is appropriate for textures. Like clamping to max values, support non-signed floating points.
* Add support for reading back depth textures and sub-areas of textures
* Improved the surface selection to select unsigned normalized SRGB surfaces.
* Not yet working:
* Hair rendering (requires texel buffer support)
* Studio lights have inverted normals.
* Volume hasn't been tested yet.
* Point clouds hasn't been tested yet.
* Shadow rendering (requires stencil buffers).
* Depth of field (requires mip mapping).
# 2023-05-15 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **May 22, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-05-22 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-05-22 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Michael
* Omar
## Eevee
- Blender studio requested a transparency pass for Eevee. https://projects.blender.org/blender/blender/pulls/107890
- Limitted to monochromatic opacity; colored opacity will show differently than in combined pass
## Realtime Compositor
- Continued with Tracking and color management nodes
- https://projects.blender.org/blender/blender/commit/d91f0bf8d20972a
- https://projects.blender.org/blender/blender/commit/6698e8f4a07fa2a
- https://projects.blender.org/blender/blender/commit/e8c660b85538122
- https://projects.blender.org/blender/blender/commit/88d03d15c193ab0
- https://projects.blender.org/blender/blender/commit/f9b5b0efd22291c.
- During the meeting did a quick discussion about the double edge mask node, in paint and tracking nodes that aren't easy to be converted to a GPU scalable algorithm
- For double edge mask we need to research if an SDF approach would be possible.
- Some nodes use an external library/code and might need to rewritten to be GPU capable.
## Eevee-next
- Fixed a regression that broke Volume rendering in EEVEE and Cycles
- https://projects.blender.org/blender/blender/pulls/107826
- Addressed feedback for Volumes and SSS.
- https://projects.blender.org/blender/blender/pulls/107176
- https://projects.blender.org/blender/blender/pulls/107407
- Found and fixed a crash in EEVEE Next when the Scene doesn't have a World.
- https://projects.blender.org/blender/blender/pulls/107891
## Overlay-next
- Ported most shape cache functions from DRW_cache to Overlay Next.
## Vulkan backend
- Initial graphics pipeline landed in main.
- Has been validated to work on AMD/Intel and NVIDIA GPUs on Windows and Linux systems.
- Many advanced features have not been implemented and can crash Blender when using.
- Started on technical documentation. https://julianeisel.github.io/devdocs/eevee_and_viewport/gpu/vulkan/
# 2023-05-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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **May 15, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-05-15 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-05-15 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Miguel
## Metal backend
- Metal backend support for Workbench-next and Eevee-next has worked on. Workbench-next is working, but Eevee-next need more work to get on the same level as the OpenGL backend. Currently it is possible to continue feature development using a Mac system, what was short term goal of this development.
- Some issues found in the backend that has been reported.
- Irradiance cache freezes computer
## Overlay/selection-next
- Removed templates from initial development. Refactored for code-clarity.
- Started porting everything from the 'extra' files. Getting familiar with the engines.
## Vulkan backend
- Device is now shared between different contexts. This improves the stability as other components (including the memory manager) is shared.
- Basic support for SRGB textures have been added. There were 2 issues with SRGB textures.
- Not all platforms support using SRGB textures as storage buffers. Blender doesn't use these, but tagged each texture to be usable as storage buffers. Solution was to not tag SRGB textures.
- Added data conversion between float linear host data and SRGB encoded data. SRGB encoded textures are used in Blender to save GPU bandwidth.
- GPU module is designed that resources can be bound without having a bound shader/pipeline. The color management pipeline uses this as well as Eevee-next. The state manager has been adjusted to track the resources and do a late binding when the shader pipeline is constructed.
- Swap chain has been rewritten. The previous swap chain was designed around a gaming pipeline where a single function is responsible for aquiring and presenting an swap chain image on the screen. This wasn't working as Blender window manager use both independently. The new swap chain keeps track when a new image is required to make sure that during presenting the correct image is used. This still needs some tweaks in order to land in main.
- Current state of the vulkan backend is that immediate emulation is working and gives us a technical workable, but user unusable Blender. Advanced viewport features (used by 3d viewport/image editor) isn't working and multi window isn't working. The developments has only been validated on NVIDIA. AMD open source driver has some color artifacts and is less stable. AMD closed source driver and Intel platfirn hasn't been tested at all and is expected to crash on startup.
# 2023-05-01 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **May 8, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-05-08 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-05-08 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Jeroen
* Omar
## Realtime viewport
- Implemented remaining nodes
- Denoise node (not realtime yet due to GPU<->CPU roundtrip)
- Stabilize 2d node
- Texture node (still has some artifacts that needs user feedback)
- Corner pin node
- Mask node
## Vulkan backend
- Continued with the graphics pipeline. Smaller changes already landed in main. Currently most of the immediate mode works, viewport don't work yet. (https://projects.blender.org/blender/blender/pulls/106224) Note that "work" in this sense doesn't mean that it is usable. The Vulkan backend still requires changes to become usable/stable et al in order to be usable for end-users.
- Resources of devices are feed after the device is destroyed -> Crashes Blender at exit.
- Vertex attribute data conversion is missing resulting some shaders not to work
- Draw manager isn't working as it crashes when allocating global resources. This has to do with texture format support. Need to investigate as 1d texture should be supported by all platforms.
- This list isn't complete and it only shows the issues we are currently aware of.
# 2023-04-24 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **May 1, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-05-01 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-05-01 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Jeroen
* Michael
* Miguel
* Omar
## Eevee-next
- Shaders have been patched to add Metal support to Eevee-next. Still requires other patches as well before it will work.
- Volumes now use compute shaders
- Did optimization to object bounds. In complex scenes this got good performance boost.
- Working in progress on Subsurface scattering.
## Overlay-next
- Initial patch to review the new architecture has been sent in for review. (https://projects.blender.org/blender/blender/pulls/107045)
## Metal backend
- Some discussion has been done on supporting Intel/AMD on Metal backend. There are some issues, but using OpenGL for these devices also has down-sides. For now due to the close deadline to 3.5.1 release we will categorize them as known issues.
- Legacy Intel platforms don't start. Issue is already solved in MacOS 13.0. Still looking into the exact MacOS versions that solved the issue.
- AMD GPU has issues when rendering the material preview. Disabling this feature is not desired as it is also used in asset creation pipeline. Downgrading to OpenGL can still be done by user in the user preferences.
- Patch for bindless attachments (needed for Eevee-next) has been send in for review.
## Vulkan backend
- Last week did a sprint to get the first pixel on screen by starting blender. This was a success and gave us feedback on the developments that still need our attention. (https://projects.blender.org/blender/blender/pulls/106224)
# 2023-04-17 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **April 24, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-04-24 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-04-24 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Brecht
* Clement
* Jeroen
* Michael
* Miguel
* Omar
## Regressions
- The fix to support Eevee on Intel HD4400-HD5500 on Windows introduced a regression that made Eevee unusable on MacOS/AMD using the OpenGL backend. This has been fixed. Thanks to the Blender community for validating the fix works on the problematic platforms. The fix has been marked to be backported to Blender 3.5.1.
## Planning
We spent time during the meeting to go over the current state of all the projects. Here is an overview.
### Eevee-next
- Indirect lighting
- Indirect light baking working, but still needs to be added to be used during drawing/rendering.
- Expect several weeks to polish to a MVP. After that more polishing is needed but that will be postponed after all core features have been implemented.
- Volume
- Expected to land in the upcoming week.
- Smaller changes are needed afterwards.
- Other
- SSS has been ported, but still needs to be reviewed
- SSRT and reflection probes would be prioritised after the core features are available in main.
- Polishing
- Shadows still requires more work to be reusable. (bugs, performance). We can still delay it a bit to focus on other areas before that.
- After the bigger changes have landed the properties that needs to be controlled by users should be clear and work on the UI/Properties can start.
### Overlay and selection
- Overlay and selection will be merged into a single engine. The selection will be done by swapping out the overlay shaders with selection shaders.
- The selection shaders won't be using GPU-queries anymore, but use atomics to match the previous behavior.
- Initial feedback from Campbell is desired to validate the approach. After that the implementation can be extended to other selections, before users can test.
- Overlay and selection isn't a requirement for Eevee-next and could also land in a different release.
### Workbench
- Workbench next almost finished; curve rendering and tweaks are still to be done.
### Grease pencil
- Grease pencil next is handled by the GP team members.
## Eevee-next
Previous section was about the global state. This section is about the developments that have happened since the last meeting.
- Irradiance cache is now stored per object
- Volumes is working with some limitations. Volumes is implemented as a graphics shader and needs to be ported to compute shaders.
- Eevee-next running on Metal has some unknowns. Most risk would be on platform compatibility. SSBO and bindpoint PR needs to be reviewed and feedback addressed. Platform support could be done after initial Apple Sillicon implementation.
- Challenge could be supporting Intel iGPUs and we might also bump the minimum requirement for it to match Windows/Linux bump for Blender 4.0.
## Vulkan back-end
- Initial development was done to the graphics pipeline (https://projects.blender.org/blender/blender/pulls/106224). This includes the immediate mode support. The initial development was done to find areas that require engineering. The next areas have been found so far:
- Some vulkan commands have to run inside a `VkRenderPass`. Other commands (including data transfers) are not able to run inside a render pass. This require changes to the `VKCommandBuffer` to keep track of what is needed and perform a late render pass binding to reduce unneeded context switches.
- A better internal API is required to support both the graphics pipeline (using `VKBatch`/`VKVertexBuffers`) and immediate mode (using `VKImmediate`/`VKBuffers`).
- Reuse temporary buffers to reduce allocation/deallocation. As buffers are constructed with a specific memory profile these buffers also needs to be managed so in different pools. Idea is to have a `VKReusableBuffer` that will move its ownership back to the pool when it has been used. This solution is expected to work together with the submission/resource tracker that was introduced for the push constants fallback.
- Parameter has been added to GPUOffscreen to specify the needed texture usages of its internal textures. This was needed to reduce validation warnings in the Vulkan backend when used in test cases where the data was read back for validation. By default the host visibility flag wasn't set. (https://projects.blender.org/blender/blender/pulls/106899)
# 2023-04-03 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **April 10, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-04-10 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-04-10 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
## Blender 3.5 release
### Regressions
- Issues detected when using Intel HD5500 on Windows. Current state is to reproduce it on a developer machine. Most machines we have access to are more modern or use Linux as that platform is more stable when using legacy hardware.
- Fixing hangs when rendering Cycles in Viewport on Apple Silicon
## Eevee-next
- Continued work on GI solution.
- EEVEE-Next Irradiance Baking: Due to time constraints it isn't possible to start implementing a solution that leverage raytracing. So the implementation will try to minimize the amount of changes to the current system while cleaning up the implementation and changing the baking algorithm (https://projects.blender.org/blender/blender/issues/105643)
- With the rewrite of the light-cache system, it became clear that the current way of storing the light-cache per scene has its limitations. Going forward we would like to separate the actual stored data and the engine lighting representation. This mean the lighting data would be stored per object then loaded by the engine into its own data structure. (https://projects.blender.org/blender/blender/issues/106449). This is still in design phase as there are other limitations and differences compared to current implementation. This requires more investigations.
- Shadow tagging, Volume rendering. Volume rendering is more difficult than expected
## Viewport Compositing
- New Fog implementation based on Eevee Bloom.
## Metal backend
- Optimize EEVEE/SSR for Apple Silicon, 20% improvement by using packed data.
- Optimize Texture usage flags in Workbench, Eevee (still in review)
## Vulkan backend
- GPU: Renderdoc Frame Capturing (https://projects.blender.org/blender/blender/pulls/105921): For better debugging of the current Vulkan backend we needed to be able to use renderdoc with our headless draw tests. In order to get this working we use athe Renderdoc APP-API to check if Blender/Test cases are run inside renderdoc and trigger the capture where needed. This can also be used to limit the capture to specific parts of the code.
- Some tweak still needs to be done to improve the workflow.
- Vulkan: Resource Submission Tracking (https://projects.blender.org/blender/blender/pulls/105183)
- Vulkan: Texture Data Conversions (https://projects.blender.org/blender/blender/pulls/105762)
- Vulkan: Clearing Framebuffer + Scissors (https://projects.blender.org/blender/blender/pulls/106044)
# 2023-03-20 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **March 27, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-03-27 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-03-27 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Michael
* Miguel
## Eevee-next
- Irradiance cache: Added library to Eevee-next for Spherical harmonics.
- Deferred render support for eevee-next
- Volume support still in development.
## Blender 3.5
- Blender 3.5 Eevee regression where less image nodes were supported than in previous version.
- Grease pencil bugs
- Metal fixes
- Principle BSDF on AMD is still in investigation. ONly on materials
## Vulkan
- Added PR for data conversion support. We detected that some platforms don't support the data types that Blender requires. Next step is to validate this with the vendor, and design/plan workarounds when needed. (https://projects.blender.org/blender/blender/pulls/105762)
# 2023-03-13 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **March 20, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-03-20 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-03-20 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Omar
* Michael
* Miguel
* Thomas
## Planning 2023
* Last week a Clement visited Blender HQ to do several planning sessions what we will be doing in the upcoming year. A blog post will be written about this, but in short:
* Focus on Eevee-next, porting existing code to the new code-base where possible.
* Research how GI can be implemented in Eevee-next. There are many different algorithms that all have side effects.
* Viewport compositor will be focusing on support for render passes (both Eevee and Cycles). Requires changes of RenderEngine API.
* Focus on Vulkan Backend.
* Eevee-next plannig has been updated (https://projects.blender.org/blender/blender/issues/93220)
* Michael and Jason also visited Blender HQ for some technical sessions and planning for the Metal Viewport. Focus will be on adding features that Eevee-next requires (SSBO, Indirect draw/compute), performance and handling bigger scenes.
## Workbench-Next
* Rotation API has land.
* Current volume algorithm has been ported to Workbench-next.
* Design has been made how to port Subsurface scattering to Eevee-next.
* Some developments have been done to add support for volumes back to Eevee-next. This is still work in progress for the upcoming period.
* Discussion with Line-art and NPR rendering. Result of the discussion is that line-art will be using geometry nodes. A discussed GPU implementation isn't a priority and would not use much of our time.
## Viewport compositor
* Added support for bi-linear filtering.
* Added support for multi-pass images
* Refactor GPU sampler code. Still in progress (https://projects.blender.org/blender/blender/pulls/105642)
## Vulkan
* Several changes have been made to the SSBO clearing API. The previous API was designed around OpenGL capabilities. The new one on what we actually need. This allows better portability to Metal and Vulkan backends. (https://projects.blender.org/blender/blender/pulls/105521)
* Push constants have landed. (https://projects.blender.org/blender/blender/pulls/104880)
* Buffers are now always mapped to virtual memory. (https://projects.blender.org/blender/blender/pulls/105588) This is a recommendation as mapping to virtual memory as an overhead, so better to do it once and keep the reference until you don't need it anymore.
# 2023-03-06 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **March 13, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-03-13 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-03-13 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Michael
* Miguel
## Overlay/Selection engine
* New design has been made for the overlay and selection engine.
* Selection will not be based on GPU queries. This would improve stability across platforms and improve performance.
* Selection engine will be done on top of the overlay engine.
* Merged the retopology PR.
## GPU module
* Added technical documentation of the GPU module (in the header files.)
## Workbench-next
* New custom ids to improve. Workbench engine already uses this new system.
* Development of Volumes in workbench-next has started.
* Fixed coordinate system.
## Metal
* Iterate on PR/issues to get the to stable for Blender 3.5
* Synchronization issues
## Planning
* Planning for this year might focus on Eevee-next t have a MVP as soon as possible. This would mean that after the current outstanding work more development time will be spent on Eevee-next.
* Also requires designs to be more fleshed out.
* Vulkan and compositor project still needs to be discussed this week.
* Might need more effort to get more people involved in the development.
# 2023-02-27 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **March 6, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-03-06 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-03-06 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Thomas
* Michael
* Miguel
## General improvements
* CPP rotation API (https://projects.blender.org/blender/blender/pulls/104941)
* Smaller refactorings to GPUTexture.
* Add header documentation and reorganize sections.
* Add texture usage flag to all texture creation.
* Make sure all available texture format are supported.
* Remove data_format from 3D texture creation function.
* Remove obsolete GPU_texture_bind_ex argument set_number.
## Metal
* Resolving outstanding issues, PR review iterations
* Barycentric data: Some tricky solution where global state is required. Metal emulates this using a struct.
* Issue in memory manager where 1000s buffers where freed. Threading issue,
* Indirect draw call support, one liner, but requires SSBO support.
## Eevee-next
* Transparent shadows. PR is available
## Workbench-next
* Draw manager handlers without having the overhead of bounding boxes and matrices to make the material slots less resource intensive.
* Multiple implementations have been done, resulting to a design that we want to achieve.
* Discussion with Jackque Lucke how to handle volume rendering in Workbench-next.
## Vulkan
* Added initial support for images. Found a challenge where NVIDIA drivers do not support 1D image types.
* Idea is to have a work-around for 2D images as this can be done inside the Vulkan backend by generating different resource binding and some function overloading. Although this needs some testing. Other vulkan implementations that supports 1D textures can still use their potential optimized sillicon paths for 1D images.
* Started design for push constants
* When push constants don't fit on the device a fallback will be created to use uniform buffer objects. In the case the fallback is needed, all push constants for that particular shader will be inside the uniform buffer objects. Shader developers are responsible to tweak the shaders to minimize the need for the fallback.
* Minimum size for push constants are 128 bytes. Although modern drivers already support 256 bytes. See https://hackmd.io/sGtEKjGHSVKSa_tTeZXi9g for an overview of static shaders with more than 128 bytes of push constants.
* Initial idea is to have a sequential buffer that stores all push constants for a shader that hasn't been executed yet. When execution has been detected (submit id) the sequential buffer can be reused. Push constants has an API that can benefit from sequential buffers.
* Vulkan: Query limits of physical device. (https://projects.blender.org/blender/blender/pulls/105125)
* Vulkan: Add resolving of builtins to shader interface. (https://projects.blender.org/blender/blender/pulls/105128)
* Vulkan: Initial Uniform buffers support (https://projects.blender.org/blender/blender/pulls/105129)
* Tracking resources when multiple commands are in flight (Still in developement)
# 2023-02-13 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **February 20, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-02-20 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-02-20 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Omar
* Michael
* Miguel
## Module
* Gitea migration and setting up workboards
* New issues/pull requests should be tagged with the EEVEE & viewport project.
* Documented GLSL code-style documentation.
* Including what to avoid in GLSL for MSL compatibility.
### Blender 4.0
* Prioritize *-Next projects for Blender 4.0 project. This is a lot of work and require everyone there.
* NPR project would then be a target for after 4.0 release. There is no agreement on the proposed design yet. Time can still be spent on the design and making prototypes.
* Vulkan is important for AMD and Intel and we should still focus on this project as well.
* We might want to focus on a non-optimized first implementation.
* Optimizations could than delayed to after Blender 4.0 targets are done.
* Current development is used to understand the optimal requirements for the Vulkan back-end. After understanding a design and implementation can be done. An example for this would be to improve command synchronizations.
## Eevee-next
* EEVEE-Next's new Virtual Shadow Map is now in master (now called main). A [devtalk post](https://devtalk.blender.org/t/eevee-next/23570/86) explain a bit what to expect from it.
* The BLI_math_float4x4.hh removal was also finally merge with all compilation issues fixes.
* Rotation API task is created that can be picked up by a developer (also community).
* Working on transparent tagging for shadow maps. Mostly done, needs some work, but first the pull request should be reviewed. More refining can be done afterwards.
* Bump node optimizations have been commited.
## Overlay-Next
* Porting empty drawing to the Overlay-Next engine and found a ways to improve the code quality.
## Workbench-next
* Added task for mat-cap improvements. Sculpt & paint wants to update the matcaps so this should be aligned.
## Metal backend
* Python: Suppress BGL deprecation messages after 100 times.
* Shadergraph optimization patch updated with new ideas. With parent shaders can remove safely remove stuttering. There are more stuff that can be balanced compilation times versus stutteling.
* New features will be uploaded after the bcon3 change
* Pull requests are uploaded to solve the AMD issues.
## Vulkan backend
* Vulkan: Use guardedalloc for driver allocations (https://projects.blender.org/blender/blender/pulls/104434)
* Equalize API of readback for IBO/VBO and SSBOs. (https://projects.blender.org/blender/blender/pulls/104571)
* Vulkan Compute shaders (https://projects.blender.org/blender/blender/pulls/104518)
* Direct dispatching of compute tasks
* Initial SSBO, VBO buffers working.
* Current DEVICE_ONLY usage requires host visibility during test cases. My proposal would be to have a separate usage flag for host visibility as this should be treaded as an exception. This way back-end can still do further optimizations when DEVICE_ONLY is used. Metal back-end currently doesn't support DEVICE_ONLY with host visibility.
---
# 2023-02-06 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **February 13, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-02-13 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-02-13 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Michael
* Miguel
## Eevee-next
* Porting source to new matrix API. Change got reverted due to built error on windows.
* Fix remaining issues on shadow maps. It is shippable, unless we want transparency as part of the first release.
* Design of the transparent shadow maps is still in discussion. Will be worked on further.
* Crash when running Eevee in debug mode with certain node setup. Still in vestigation. Task has been added with detailed explanation.
* Detected a way to improve the bump node performance. Bump node uses the incorrect function in some cases. Also some issues detected for noise nodes as well. Approach needs feedback as there might be better approaches.
* Initial feedback is ok, but still need more review to see how reusable it is in other cases as the solution is compiler dependant.
## Workbench-next
* Patch for line draw issues between the objects. Two separate paths for single material passes vs multiple material passes.
*
## Metal backend
* Perspective nodetree optimization patch. Where in complex shaders register spills work
* AMD patches have been sent for review. Requires some feedback on how to handle them more cleanly (code-wise)
* Multiple Principled BSDF on AMD don't compile nicely. Fix is large.
* Optimized node graph patch still needs proper review. Small changes would still stotter as the PSO needs to be validated. Still some ideas, but requires more high level changes, limited to the GPU module/draw manager.
* If fix is quite isolated, we could work with this change for 3.5. There are some workflow issues, that could be solved afterwards.
* Fix changes GLSL and therefore can work on any platform (OpenGL/Metal). Would also help with bump node performance regressions.
## Vulkan backend
* Integrating Vulkan Memory Allocator (VMA) into Blender. Still in progress as there are many requirements that have to be met, before the library can be used. Currently still checking how to get it running on Vulkan 1.2.
* Found a minor issue in the VMA created a patch and it has been applied upstream. The patch is also applied to Blender's local copy.
* Converted test cases to use ShaderCreateInfo. Needs some small tweaks to get working on all platforms.
* Started with SSBO, added a generic Vulkan buffer that can be used by all buffer types. Added test cases to test progress as we won't be able to start until most of the project has been finished.
* Added a patch for using guardedalloc for driver and platform memory operations. (https://developer.blender.org/D17184) Requires some feedback how we want
* to enable it. Current proposal is to use a compilation directive.
# 2023-01-30 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](https://meet.google.com/pdh-qwfv-dwf)
* Next Meeting: **February 6, 2023, 11:30 AM to 12:00 PM Amsterdam Time** (Your local time: [date=2023-02-06 time=11:30:00 timezone="Europe/Berlin"] → [date=2023-02-06 time=12:00:00 timezone="Europe/Berlin"])
*Attendees*:
* Clement
* Jeroen
* Michael
* Miguel
## Metal backend
- Addressing issues with Metal back-end. Some patches are still in flight addressing last known issues platform specific issues (mainly Intel iGPUs).
- Looking at community feedback the back-end is stable. A close eye is kept to the bug tracker if new issues pop up.
- SSBO support is nearly done. Special binding options are still open. All Eevee-next shaders compile. Workbench shadows are still not compiling and requires more investigation. Option will be made available as a compile option, as it requires some stabilization.
## Eevee-next
- Finishing new shadowing. Added initial set of options (removing some that requires user feedback if they are really needed).
- Other shadowing algorithm for ortographic views, still has an issue. Development will pause until we have access to the main development station to make sure it works on most common platforms.
## Workbench-next
- Workbench-next is in master
- Bugfixing last issues, memory leaks with shaders and solving known issues.
- Fix for outline is ready but requires review.