Flutter Impeller
barrier_vk.h
Go to the documentation of this file.
1
// Copyright 2013 The Flutter Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#pragma once
6
7
#include "flutter/fml/macros.h"
8
#include "
impeller/renderer/backend/vulkan/vk.h
"
9
10
namespace
impeller
{
11
12
//------------------------------------------------------------------------------
13
/// @brief Defines an operations and memory access barrier on a resource.
14
///
15
/// For further reading, see
16
/// https://www.khronos.org/events/vulkan-how-to-use-synchronisation-validation-across-multiple-queues-and-command-buffers
17
/// and the Vulkan spec. The docs for the various member of this
18
/// class are based on verbiage in the spec.
19
///
20
struct
BarrierVK
{
21
vk::CommandBuffer
cmd_buffer
= {};
22
vk::ImageLayout
new_layout
= vk::ImageLayout::eUndefined;
23
24
// The first synchronization scope defines what operations the barrier waits
25
// for to be done. In the Vulkan spec, this is usually referred to as the src
26
// scope.
27
vk::PipelineStageFlags
src_stage
= vk::PipelineStageFlagBits::eNone;
28
29
// The first access scope defines what memory operations are guaranteed to
30
// happen before the barrier. In the Vulkan spec, this is usually referred to
31
// as the src scope.
32
vk::AccessFlags
src_access
= vk::AccessFlagBits::eNone;
33
34
// The second synchronization scope defines what operations wait for the
35
// barrier to be done. In the Vulkan spec, this is usually referred to as the
36
// dst scope.
37
vk::PipelineStageFlags
dst_stage
= vk::PipelineStageFlagBits::eNone;
38
39
// The second access scope defines what memory operations are prevented from
40
// running till after the barrier. In the Vulkan spec, this is usually
41
// referred to as the dst scope.
42
vk::AccessFlags
dst_access
= vk::AccessFlagBits::eNone;
43
};
44
45
}
// namespace impeller
impeller::BarrierVK::dst_access
vk::AccessFlags dst_access
Definition:
barrier_vk.h:42
impeller::BarrierVK::new_layout
vk::ImageLayout new_layout
Definition:
barrier_vk.h:22
impeller::BarrierVK::cmd_buffer
vk::CommandBuffer cmd_buffer
Definition:
barrier_vk.h:21
vk.h
impeller::BarrierVK
Defines an operations and memory access barrier on a resource.
Definition:
barrier_vk.h:20
impeller::BarrierVK::src_access
vk::AccessFlags src_access
Definition:
barrier_vk.h:32
impeller::BarrierVK::dst_stage
vk::PipelineStageFlags dst_stage
Definition:
barrier_vk.h:37
impeller
Definition:
aiks_context.cc:10
impeller::BarrierVK::src_stage
vk::PipelineStageFlags src_stage
Definition:
barrier_vk.h:27
impeller
renderer
backend
vulkan
barrier_vk.h
Generated by
1.8.17