5d132ac0c600b68f164fe360b556760d98c92363
`GLBatch::draw_indirect` has additional overhead compared to `GLBatch::draw`, and can become a bottleneck in scenes that require many draw calls (ie. with too many unique meshes). The performance difference is almost exclusively caused by the `GL_COMMAND_BARRIER_BIT` barrier that happens on every call. This PR adds a `GPU_storagebuf_sync_as_indirect_buffer` function that can be used to place the barrier only once after filling the indirect buffer content. This function is a no-op in Vulkan and Metal since they don't need the barrier. Pull Request: https://projects.blender.org/blender/blender/pulls/117561
…
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%
