barrier: Add OpControlBarrier

This commit is contained in:
ReinUsesLisp 2020-05-15 02:54:06 -03:00
parent 414fc4dbd2
commit a62c5bbc10
2 changed files with 11 additions and 0 deletions

View file

@ -366,6 +366,9 @@ public:
// Barrier // Barrier
/// Wait for other invocations of this module to reach the current point of execution.
Id OpControlBarrier(Id execution, Id memory, Id semantics);
/// Control the order that memory accesses are observed. /// Control the order that memory accesses are observed.
Id OpMemoryBarrier(Id scope, Id semantics); Id OpMemoryBarrier(Id scope, Id semantics);

View file

@ -10,6 +10,14 @@
namespace Sirit { namespace Sirit {
Id Module::OpControlBarrier(Id execution, Id memory, Id semantics) {
auto op = std::make_unique<Op>(spv::Op::OpControlBarrier);
op->Add(execution);
op->Add(memory);
op->Add(semantics);
return AddCode(std::move(op));
}
Id Module::OpMemoryBarrier(Id scope, Id semantics) { Id Module::OpMemoryBarrier(Id scope, Id semantics) {
auto op = std::make_unique<Op>(spv::Op::OpMemoryBarrier); auto op = std::make_unique<Op>(spv::Op::OpMemoryBarrier);
op->Add(scope); op->Add(scope);