Back out of passing a token when transfering virtual objects
It is questionable whether there is a point to having a token object when transfering a virtual object to a device (since there is a handle object that is managing it anyway). Back out of passing the token all the way down unless there is an actual need for that.
This commit is contained in:
parent
7aa043b0da
commit
098e0fed16
@ -134,7 +134,7 @@ public:
|
||||
/// 3. Reset or ReleaseResources is called
|
||||
///
|
||||
VTKM_CONT const VirtualBaseType* PrepareForExecution(vtkm::cont::DeviceAdapterId deviceId,
|
||||
vtkm::cont::Token& token) const
|
||||
vtkm::cont::Token&) const
|
||||
{
|
||||
const bool validId = this->Internals->DeviceIdIsValid(deviceId);
|
||||
if (!validId)
|
||||
@ -143,8 +143,7 @@ public:
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return static_cast<const VirtualBaseType*>(
|
||||
this->Internals->PrepareForExecution(deviceId, token));
|
||||
return static_cast<const VirtualBaseType*>(this->Internals->PrepareForExecution(deviceId));
|
||||
}
|
||||
|
||||
VTKM_CONT
|
||||
|
@ -14,7 +14,6 @@
|
||||
|
||||
#include <vtkm/VirtualObjectBase.h>
|
||||
#include <vtkm/cont/DeviceAdapterTag.h>
|
||||
#include <vtkm/cont/Token.h>
|
||||
|
||||
#include <array>
|
||||
#include <memory>
|
||||
@ -46,8 +45,7 @@ struct VirtualObjectTransfer
|
||||
/// PrepareForExecution). If the \c updateData flag is false and the object was already
|
||||
/// transferred previously, the previously created object is returned.
|
||||
///
|
||||
VTKM_CONT const VirtualDerivedType* PrepareForExecution(bool updateData,
|
||||
vtkm::cont::Token& token);
|
||||
VTKM_CONT const VirtualDerivedType* PrepareForExecution(bool updateData);
|
||||
|
||||
/// \brief Frees up any resources in the execution environment.
|
||||
///
|
||||
@ -64,8 +62,7 @@ public:
|
||||
VTKM_CONT virtual ~TransferInterface();
|
||||
|
||||
VTKM_CONT virtual const vtkm::VirtualObjectBase* PrepareForExecution(
|
||||
vtkm::Id hostModifiedCount,
|
||||
vtkm::cont::Token& token) = 0;
|
||||
vtkm::Id hostModifiedCount) = 0;
|
||||
VTKM_CONT virtual void ReleaseResources() = 0;
|
||||
};
|
||||
|
||||
@ -79,12 +76,10 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
VTKM_CONT const vtkm::VirtualObjectBase* PrepareForExecution(vtkm::Id hostModifiedCount,
|
||||
vtkm::cont::Token& token) override
|
||||
VTKM_CONT const vtkm::VirtualObjectBase* PrepareForExecution(vtkm::Id hostModifiedCount) override
|
||||
{
|
||||
bool updateData = (this->LastModifiedCount != hostModifiedCount);
|
||||
const vtkm::VirtualObjectBase* executionObject =
|
||||
this->Transfer.PrepareForExecution(updateData, token);
|
||||
const vtkm::VirtualObjectBase* executionObject = this->Transfer.PrepareForExecution(updateData);
|
||||
this->LastModifiedCount = hostModifiedCount;
|
||||
return executionObject;
|
||||
}
|
||||
@ -144,13 +139,12 @@ struct VTKM_CONT_EXPORT TransferState
|
||||
}
|
||||
}
|
||||
|
||||
const vtkm::VirtualObjectBase* PrepareForExecution(vtkm::cont::DeviceAdapterId deviceId,
|
||||
vtkm::cont::Token& token) const
|
||||
const vtkm::VirtualObjectBase* PrepareForExecution(vtkm::cont::DeviceAdapterId deviceId) const
|
||||
{
|
||||
//make sure the device is up to date
|
||||
auto index = static_cast<std::size_t>(deviceId.GetValue());
|
||||
vtkm::Id count = this->HostPointer->GetModifiedCount();
|
||||
return this->DeviceTransferState[index]->PrepareForExecution(count, token);
|
||||
return this->DeviceTransferState[index]->PrepareForExecution(count);
|
||||
}
|
||||
|
||||
vtkm::VirtualObjectBase* HostPtr() const { return this->HostPointer; }
|
||||
|
@ -13,8 +13,6 @@
|
||||
#include <vtkm/StaticAssert.h>
|
||||
#include <vtkm/VirtualObjectBase.h>
|
||||
|
||||
#include <vtkm/cont/Token.h>
|
||||
|
||||
namespace vtkm
|
||||
{
|
||||
namespace cont
|
||||
@ -30,8 +28,7 @@ struct VirtualObjectTransferShareWithControl
|
||||
{
|
||||
}
|
||||
|
||||
VTKM_CONT const VirtualDerivedType* PrepareForExecution(bool vtkmNotUsed(updateData),
|
||||
vtkm::cont::Token&)
|
||||
VTKM_CONT const VirtualDerivedType* PrepareForExecution(bool vtkmNotUsed(updateData))
|
||||
{
|
||||
return this->VirtualObject;
|
||||
}
|
||||
|
@ -627,9 +627,7 @@ private:
|
||||
target.Value = 5;
|
||||
|
||||
Transfer transfer(&target);
|
||||
vtkm::cont::Token transferToken;
|
||||
const BaseType* base =
|
||||
static_cast<const BaseType*>(transfer.PrepareForExecution(false, transferToken));
|
||||
const BaseType* base = static_cast<const BaseType*>(transfer.PrepareForExecution(false));
|
||||
|
||||
{
|
||||
vtkm::cont::Token token;
|
||||
@ -640,7 +638,7 @@ private:
|
||||
{
|
||||
vtkm::cont::Token token;
|
||||
target.Value = 10;
|
||||
base = static_cast<const BaseType*>(transfer.PrepareForExecution(true, token));
|
||||
base = static_cast<const BaseType*>(transfer.PrepareForExecution(true));
|
||||
Algorithm::Schedule(VirtualObjectTransferKernel(base, result, token), 1);
|
||||
}
|
||||
VTKM_TEST_ASSERT(result.GetPortalConstControl().Get(0) == 10, "Did not get expected result");
|
||||
|
Loading…
Reference in New Issue
Block a user