Patches to Bf Blender for CAD development. https://tornavis.org/
Go to file
Jason Fielder 1b0ddfa6cb GPU: Add explicit API to sync storage buffer back to host
PR Introduces GPU_storagebuf_sync_to_host as an explicit routine to
flush GPU-resident storage buffer memory back to the host within the
GPU command stream.

The previous implmentation relied on implicit synchronization of
resources using OpenGL barriers which does not match the
paradigm of explicit APIs, where indiviaul resources may need
to be tracked.

This patch ensures GPU_storagebuf_read can be called without
stalling the GPU pipeline while work finishes executing. There are
two possible use cases:

1) If GPU_storagebuf_read is called AFTER an explicit call to
GPU_storagebuf_sync_to_host, the read will be synchronized.
If the dependent work is still executing on the GPU, the host
will stall until GPU work has completed and results are available.

2) If GPU_storagebuf_read is called WITHOUT an explicit call to
GPU_storagebuf_sync_to_host, the read will be asynchronous
and whatever memory is visible to the host at that time will be used.
(This is the same as assuming a sync event has already been signalled.)

This patch also addresses a gap in the Metal implementation where
there was missing read support for GPU-only storage buffers.
This routine now uses a staging buffer to copy results if no
host-visible buffer was available.

Reading from a GPU-only storage buffer will always stall
the host, as it is not possible to pre-flush results, as no
host-resident buffer is available.

Authored by Apple: Michael Parkin-White

Pull Request: https://projects.blender.org/blender/blender/pulls/113456
2023-10-20 17:04:36 +02:00
.gitea Gitea: add note that developers must opt-out of inclusion in AUTHORS 2023-08-18 09:23:43 +10:00
.github Docs: change Git URLs to point projects.blender.org instead of git.blender.org 2023-02-07 14:23:05 +01:00
build_files Merge branch 'blender-v4.0-release' 2023-10-17 20:01:00 +11:00
doc Release cycle: Bcon1 for Blender 4.1 2023-09-27 12:49:46 +02:00
extern Cleanup: Convert winfunc and utfconv to C++ 2023-10-20 10:27:31 +02:00
intern Mesh: Replace auto smooth with node group 2023-10-20 16:54:08 +02:00
locale I18N: Updated UI translations from git/weblate (61c02b1e7f0506c). 2023-10-16 11:19:35 +02:00
release New splash screen for the main development branch 2023-10-16 16:05:48 +02:00
scripts EEVEE-Next: Rework the material panel 2023-10-20 16:59:20 +02:00
source GPU: Add explicit API to sync storage buffer back to host 2023-10-20 17:04:36 +02:00
tests USD: export to a single root prim by default 2023-10-20 10:58:40 -04:00
tools Cleanup: spelling in comments, white-space in comments 2023-10-19 18:53:16 +11:00
.clang-format clang-format: set BraceWrapping::AfterControlStatement to "MultiLine" 2023-05-02 09:37:08 +10:00
.clang-tidy Clang-tidy: Ignore variable name length and .c/.cc include warnings 2022-05-06 15:26:54 +02:00
.editorconfig pyproject: add configuration for autopep8 2022-04-22 10:13:39 +10:00
.git-blame-ignore-revs Cleanup: add commit to .git-blame-ignore-revs 2023-05-03 20:31:11 +10:00
.gitignore Ignore build files for VS and VS Code 2023-03-07 17:38:34 +01:00
AUTHORS AUTHORS: update 2023-10-06 21:47:31 +11:00
CMakeLists.txt Cycles: add support for AMD RDNA3 APUs 2023-10-19 18:03:31 +02:00
COPYING
GNUmakefile Makefile: remove redundant directory changing 2023-09-29 16:44:31 +10:00
README.md Update references to the new projects platform and main branch 2023-02-07 14:18:19 +01:00
make.bat Windows: Propagate errors in make.bat 2023-08-16 19:29:47 +02:00
pyproject.toml pyproject: remove tools/pyproject.toml 2023-03-01 22:18:28 +11:00

README.md

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.

Blender screenshot

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.