vtk-m2/vtkm/exec/arg/testing/ThreadIndicesTesting.h
Kenneth Moreland 4f9fa08fa1 Remove ArrayHandleStreaming capabilities
The `ArrayHandleStreaming` class stems from an old research project
experimenting with bringing data from an `ArrayHandle` in parts and
overlapping device transfer and execution. It works, but only in very
limited contexts. Thus, it is not actually used today. Plus, the feature
requires global indexing to be permutated throughout the worklet
dispatching classes of VTK-m for no further reason.

Because it is not really used, there are other more promising approaches
on the horizon, and it makes further scheduling improvements difficult,
we are removing this functionality.
2020-03-24 15:01:56 -06:00

68 lines
1.7 KiB
C++

//============================================================================
// Copyright (c) Kitware, Inc.
// All rights reserved.
// See LICENSE.txt for details.
//
// This software is distributed WITHOUT ANY WARRANTY; without even
// the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
// PURPOSE. See the above copyright notice for more information.
//============================================================================
#ifndef vtk_m_exec_arg_testing_ThreadIndicesTesting_h
#define vtk_m_exec_arg_testing_ThreadIndicesTesting_h
#include <vtkm/Types.h>
namespace vtkm
{
namespace exec
{
namespace arg
{
/// \brief Simplified version of ThreadIndices for unit testing purposes
///
class ThreadIndicesTesting
{
public:
VTKM_EXEC_CONT
ThreadIndicesTesting(vtkm::Id index)
: InputIndex(index)
, OutputIndex(index)
, VisitIndex(0)
{
}
VTKM_EXEC_CONT
ThreadIndicesTesting(vtkm::Id inputIndex, vtkm::Id outputIndex, vtkm::IdComponent visitIndex)
: InputIndex(inputIndex)
, OutputIndex(outputIndex)
, VisitIndex(visitIndex)
{
}
VTKM_EXEC_CONT
vtkm::Id GetInputIndex() const { return this->InputIndex; }
VTKM_EXEC_CONT
vtkm::Id3 GetInputIndex3D() const { return vtkm::Id3(this->GetInputIndex(), 0, 0); }
VTKM_EXEC_CONT
vtkm::Id GetOutputIndex() const { return this->OutputIndex; }
VTKM_EXEC_CONT
vtkm::IdComponent GetVisitIndex() const { return this->VisitIndex; }
VTKM_EXEC_CONT
vtkm::Id GetThreadIndex() const { return this->OutputIndex; }
private:
vtkm::Id InputIndex;
vtkm::Id OutputIndex;
vtkm::IdComponent VisitIndex;
};
}
}
} // namespace vtkm::exec::arg
#endif //vtk_m_exec_arg_testing_ThreadIndicesTesting_h