File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1212#include " API/Device.h"
1313#include " Support/Pipeline.h"
1414
15+ #include " llvm/ADT/ScopeExit.h"
1516#include " llvm/ADT/SmallString.h"
1617#include " llvm/Support/Error.h"
1718#include " llvm/Support/JSON.h"
@@ -405,6 +406,9 @@ class MTLDevice : public offloadtest::Device {
405406 MTL::ComputeCommandEncoder *CmdEncoder =
406407 IS.CmdBuffer ->computeCommandEncoder ();
407408
409+ auto CloseCommandEncoder =
410+ llvm::scope_exit ([&]() { CmdEncoder->endEncoding (); });
411+
408412 CmdEncoder->setComputePipelineState (IS.ComputePipeline );
409413 CmdEncoder->setBuffer (IS.ArgBuffer , 0 , 2 );
410414 for (uint64_t I = 0 ; I < IS.Textures .size (); ++I)
@@ -463,7 +467,6 @@ class MTLDevice : public offloadtest::Device {
463467 CmdEncoder->dispatchThreads (GridSize, GroupSize);
464468 CmdEncoder->memoryBarrier (MTL::BarrierScopeBuffers);
465469
466- CmdEncoder->endEncoding ();
467470 return llvm::Error::success ();
468471 }
469472
You can’t perform that action at this time.
0 commit comments