Fix conversion errors in benchmarking code

The recent removal of type selectors in ControlSignature field tags
means that the BenchmarkFieldAlgorithms code was creating code paths
that were never followed and lead to impossible type conversions (e.g.
Vec to float). Fixed the problem by specifing the types for the
VariantArrayHandles better.
This commit is contained in:
Kenneth Moreland 2019-01-10 16:00:32 -07:00
parent 821925fbf3
commit a52211e565

@ -320,7 +320,7 @@ class BenchmarkFieldAlgorithms
using ValueVariantHandle = vtkm::cont::VariantArrayHandleBase<ValueTypes>; using ValueVariantHandle = vtkm::cont::VariantArrayHandleBase<ValueTypes>;
using InterpVariantHandle = vtkm::cont::VariantArrayHandleBase<InterpValueTypes>; using InterpVariantHandle = vtkm::cont::VariantArrayHandleBase<InterpValueTypes>;
using IdVariantHandle = vtkm::cont::VariantArrayHandleBase<vtkm::TypeListTagIndex>; using EdgeIdVariantHandle = vtkm::cont::VariantArrayHandleBase<vtkm::TypeListTagId2>;
private: private:
template <typename Value> template <typename Value>
@ -662,8 +662,8 @@ private:
vtkm::Float64 operator()() vtkm::Float64 operator()()
{ {
InterpVariantHandle dfield(this->FieldHandle); InterpVariantHandle dfield(this->FieldHandle);
InterpVariantHandle dweight(this->WeightHandle); ValueVariantHandle dweight(this->WeightHandle);
IdVariantHandle dedges(this->EdgePairHandle); EdgeIdVariantHandle dedges(this->EdgePairHandle);
vtkm::cont::ArrayHandle<Value> result; vtkm::cont::ArrayHandle<Value> result;
Timer timer; Timer timer;