vtk-m2/vtkm
Kenneth Moreland 42acb9a66c Properly check whether ArrayHandleRecombineVec is on device
The `ArrayCopy` was simply calling `IsOnDevice` to see if the array from
the `UnknownArrayHandle` was on a device. Seems right, but it is
actually operating on an `ArrayHandleRecombineVec`. This is a special
array that mostly behaves like other `ArrayHandle`s, but because it has
variable vec size, it breaks some `ArrayHandle` conventions.

One of the iffy things it has to do is stick the dependent `Buffer`
objects into the metadata of its own `Buffer` rather than list them in
the `Buffer` list. This means that `ArrayHandle` cannot properly check
them to see where they are located. Instead, it just sees that the one
`Buffer` it has is empty.

A recent change to `IsOnDevice` made it return true for any device if
the `Buffer` is empty. So previously this was broken in that it reported
that the array was not on any device. That changed to report that it was
on all devices, even inactive ones. So the code went from not
efficiently copying to throwing an exception.

This has been fixed by pulling one of the dependent arrays and checking
that one.
2021-08-11 07:56:32 -06:00
..
cont Properly check whether ArrayHandleRecombineVec is on device 2021-08-11 07:56:32 -06:00
exec Fix divide-by-zero in UnitTestCellInterpolate 2021-07-12 10:29:46 -06:00
filter Simplify the code a little. 2021-08-05 12:16:33 -04:00
internal cmake: avoid adding testing directories if testing is disabled 2021-06-01 18:40:40 -04:00
interop Fix cuda-opengl interop 2021-07-12 10:32:44 -04:00
io Fix VTKDataSetWriter writing char types 2021-08-06 09:58:26 -04:00
random cmake: avoid adding testing directories if testing is disabled 2021-06-01 18:40:40 -04:00
rendering Avoid divide by zero in rendering TriangleIntersections 2021-07-12 11:23:24 -06:00
source cmake: avoid adding testing directories if testing is disabled 2021-06-01 18:40:40 -04:00
testing Disable floating point exception traps when testing NaNs 2021-07-12 10:29:45 -06:00
thirdparty diy: update tag 2021-06-01 10:33:46 -04:00
worklet Do not try to use ArrayGetValue on arrays of non-basic types 2021-08-11 07:56:32 -06:00
.gitattributes
Algorithms.h Deprecate vtkm/BinarySearch.h, it is unused and similar to LowerBound 2021-04-07 19:10:28 +00:00
Assert.h
Atomic.h Do not use volatile when calling CUDA atomicCAS 2021-03-25 10:11:44 -06:00
BinaryOperators.h
BinaryPredicates.h
Bitset.h
Bounds.h
CellClassification.h
CellShape.h
CellTraits.h
CMakeLists.txt cmake: avoid adding testing directories if testing is disabled 2021-06-01 18:40:40 -04:00
Deprecated.h Disable deprecation for MSVC 2017 2021-04-26 12:47:44 -06:00
ErrorCode.h
Flags.h
Geometry.h
Geometry.hxx
Hash.h
ImplicitFunction.h Completely deprecate virtual methods 2021-04-28 07:28:32 -06:00
List.h
ListTag.h
LowerBound.h split vtkm/Algorithms.h into UpperBound.h, LowerBound.h, and BinarySearch.h 2021-04-07 18:53:09 +00:00
Math.h Remove recursion from FloatDistance 2021-08-02 09:50:41 -06:00
Math.h.in Remove recursion from FloatDistance 2021-08-02 09:50:41 -06:00
Matrix.h Break LUP factorization when invalid matrix found 2021-07-12 10:29:46 -06:00
NewtonsMethod.h
Pair.h
Particle.h Make sure to #include<ostream> 2021-04-15 09:19:55 -04:00
Range.h
RangeId2.h
RangeId3.h
RangeId.h
StaticAssert.h
Swap.h
TopologyElementTag.h
Transform3D.h
Tuple.h
Tuple.h.in
TypeList.h
TypeListTag.h
Types.h Allow for different types in basic type operators 2021-03-03 09:39:45 -07:00
TypeTraits.h
UnaryPredicates.h
UpperBound.h split vtkm/Algorithms.h into UpperBound.h, LowerBound.h, and BinarySearch.h 2021-04-07 18:53:09 +00:00
VecAxisAlignedPointCoordinates.h
VecFlat.h
VecFromPortal.h
VecFromPortalPermute.h
VecFromVirtPortal.h
VectorAnalysis.h Avoid floating point exception in Orthonormalize 2021-07-12 10:29:46 -06:00
VecTraits.h
VecVariable.h
Version.h.in
VirtualObjectBase.h Completely deprecate virtual methods 2021-04-28 07:28:32 -06:00