193e22ee7ebeda4b3d9c982ec52f3faed31256f8
This re-applies pull request #140671, but with a fix for #144713 where the non-pointer part of IntegratorStateGPU was not initialized. This PR is a more extensive follow on from #123551 (removal of AMD and Intel GPU support). All supported Apple GPUs have Metal 3 and tier 2 argument buffer support. The invariant resource properties `gpuAddress` and `gpuResourceID` can be written directly into GPU structs once at setup time rather than once per dispatch. More background info can be found in this article: https://developer.apple.com/documentation/metal/improving-cpu-performance-by-using-argument-buffers?language=objc Code changes: - All code relating to `MTLArgumentEncoder` is removed - `KernelParamsMetal` updates are directly written into `id<MTLBuffer> launch_params_buffer` which is used for the "static" dispatch arguments - Dynamic dispatch arguments are small enough to be encoded using the `MTLComputeCommandEncoder.setBytes` function, eliminating the need for cycling temporary arg buffers Fix #144713 Co-authored-by: Brecht Van Lommel <brecht@noreply.localhost> Pull Request: https://projects.blender.org/blender/blender/pulls/145175
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
