D3D12/Vulkan: Insert storage buffer barriers between compute pass dipatches

This patch extends the BindGroupTracker in the D3D12 and Vulkan backends to
track bound storage buffers. We insert barriers between dispatches to properly
synchronize writes to storage buffers.

Bug: dawn:236
Change-Id: Iab3f964c345b64755557ab206e05a2ff7b0a3a1f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/12301
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
This commit is contained in:
Austin Eng
2019-10-22 17:28:20 +00:00
committed by Commit Bot service account
parent 2c8b5c6370
commit 7b3cc35cb6
13 changed files with 611 additions and 68 deletions

View File

@@ -210,7 +210,7 @@ namespace dawn_native { namespace opengl {
RenderPipelineBase* mLastPipeline = nullptr;
};
class BindGroupTracker : public BindGroupTrackerBase<BindGroupBase*, false> {
class BindGroupTracker : public BindGroupTrackerBase<false> {
public:
void OnSetPipeline(RenderPipeline* pipeline) {
BindGroupTrackerBase::OnSetPipeline(pipeline);