1. 30 Jan, 2023 1 commit
  2. 27 Jan, 2023 1 commit
  3. 26 Jan, 2023 2 commits
  4. 25 Jan, 2023 3 commits
  5. 24 Jan, 2023 2 commits
  6. 23 Jan, 2023 2 commits
    • Kenneth Moreland's avatar
      Support using arrays with dynamic Vec-likes as output arrays · eda6dc39
      Kenneth Moreland authored
      When you use an `ArrayHandle` as an output array in a worklet (for example,
      as a `FieldOut`), the fetch operation does not read values from the array
      during the `Load`. Instead, it just constructs a new object. This makes
      sense as an output array is expected to have garbage in it anyway.
      
      This is a problem for some special arrays that contain `Vec`-like objects
      that are sized dynamically. For example, if you use an
      `ArrayHandleGroupVecVariable`, each entry is a dynamically sized `Vec`. The
      array is referenced by creating a special version of `Vec` that holds a
      reference to the array portal and an index. Components are retrieved and
      set by accessing the memory in the array portal. This allows us to have a
      dynamically sized `Vec` in the execution environment without having to
      allocate within the worklet.
      
      The problem comes when we want to use one of these arrays with `Vec`-like
      objects for an output. The typical fetch fails because you cannot construct
      one of these `Vec`-like objects without an array portal to bind it to. In
      these cases, we need the fetch to create the `Vec`-like object by reading
      it from the array. Even though the data will be garbage, you get the
      necessary buffer into the array (and nothing more).
      
      Previously, the problem was fixed by creating partial specializations of
      the `Fetch` for these `ArrayHandle`s. This worked OK as long as you were
      using the array directly. However, the approach failed if the `ArrayHandle`
      was wrapped in another `ArrayHandle` (for example, if an `ArrayHandleView`
      was applied to an `ArrayHandleGroupVecVariable`).
      
      To get around this problem and simplify things, the basic `Fetch` for
      direct output arrays is changed to handle all cases where the values in the
      `ArrayHandle` cannot be directly constructed. A compile-time check of the
      array's value type is checked with `std::is_default_constructible`. If it
      can be constructed, then the array is not accessed. If it cannot be
      constructed, then it grabs a value out of the array.
      eda6dc39
    • Kenneth Moreland's avatar
      Merge topic 'resize-extracted-components' · 679a61bb
      Kenneth Moreland authored and Kitware Robot's avatar Kitware Robot committed
      23469cab Add ability to resize ArrayHandleRecombineVec
      2061e95e
      
       Add ability to resize ArrayHandleStride
      
      Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
      Acked-by: Li-Ta Lo's avatarLi-Ta Lo <ollie@lanl.gov>
      Merge-request: !2964
      679a61bb
  7. 20 Jan, 2023 3 commits
  8. 19 Jan, 2023 2 commits
  9. 18 Jan, 2023 3 commits
    • Kenneth Moreland's avatar
      Add ability to resize ArrayHandleRecombineVec · 23469cab
      Kenneth Moreland authored
      This feature enables the ability to anonomously create an array (such as
      with `UnknownArrayHandle::NewInstance()`) and then use that as an output
      array.
      23469cab
    • Kenneth Moreland's avatar
      Add ability to resize ArrayHandleStride · 2061e95e
      Kenneth Moreland authored
      This feature enables the ability to anonomously create an array (such as
      with `UnknownArrayHandle::NewInstance()`) and then use that as an output
      array. Although resizing `ArrayHandleStride` is a little wonky, it
      allows worklets to resize them after creation rather than having to know
      what size to make and allocating the array.
      2061e95e
    • Sujin Philip's avatar
      Fix compile issues when using cuda 12 · 5d048134
      Sujin Philip authored
      CUDA 12 adds a `cub::Swap` function that creates ambiguity with `vtkm::Swap`.
      This happens when a function from the `cub` namespace is called with an object
      of a class defined in the `vtkm` namespace as an argument. If that function
      has an unqualified call to `Swap`, it results in ADL being used, causing the
      templated functions `cub::Swap` and `vtkm::Swap` to conflict.
      5d048134
  10. 17 Jan, 2023 2 commits
  11. 16 Jan, 2023 5 commits
  12. 13 Jan, 2023 9 commits
  13. 10 Jan, 2023 2 commits
    • Kenneth Moreland's avatar
      Clarify field index ordering in Doxygen · c0e0032e
      Kenneth Moreland authored
      The fields in a `DataSet` are indexed from `0` to `GetNumberOfFields() - 1`.
      It is natural to assume that the fields will be indexed in the order that
      they are added, but they are not. Rather, the indexing is arbitrary and can
      change any time a field is added to the dataset.
      
      To make this more clear, Doxygen documentation is added to the `DataSet`
      methods to inform users to not make any assumptions about the order of
      field indexing.
      c0e0032e
    • Kenneth Moreland's avatar
      Resolve sprintf warning · f275972e
      Kenneth Moreland authored
      The latest verson of Xcode clang warns about using sprintf because of
      its inherent vulnerability. Change it to snprintf.
      f275972e
  14. 09 Jan, 2023 3 commits