1. 24 Feb, 2018 1 commit
    • Utkarsh Ayachit's avatar
      Make redistribution mode customizible. · 5eedecb2
      Utkarsh Ayachit authored
      We have come across representations that need different ways of handling
      boundary cells when data is redistributed for ordered compositing.
      Now a new API on vtkPVRenderView can be used by representation to mark
      its data to be handle boundary cells differently. Default is still to
      split the cells. A representation can choose to have those cells
      duplicated or assigned to a unique region instead.
      5eedecb2
  2. 24 Jan, 2018 1 commit
    • Utkarsh Ayachit's avatar
      Avoid using obsolete data bounds. · 1820718e
      Utkarsh Ayachit authored
      Due to the disconnect between the representation and its mapper, when
      `vtkPVRenderView::SynchronizeGeometryBounds` is called, there was a
      potential that we'd end up using bounds from obsolete data. That was
      causing #17941.
      
      This fixes #17941 by ensuring that vtkPVDataDeliveryManager cleans any
      obsolete datasets when a new one is provided to it by the
      representation.
      1820718e
  3. 14 Dec, 2017 1 commit
    • Utkarsh Ayachit's avatar
      Fix #17879: improve logic that determine when to deliver data · eb20bb0e
      Utkarsh Ayachit authored
      The logic in vtkPVDataDeliveryManager that would result in deciding
      which representation delivered data that the potential to miss
      representation that produced empty data under special cases.
      This was because vtkPVDataDeliveryManager was depending on data's MTime
      which doesn't always change when `vtkPVDataRepresentation::RequestData`
      is executed. Fixed that using a more robust
      `vtkDemandDrivenPipeline::DataTime` instead.
      
      Also added a test for the same.
      eb20bb0e
  4. 24 Jul, 2017 1 commit
    • Utkarsh Ayachit's avatar
      Use vtkMTimeStamp for timestamp. · 96203ef0
      Utkarsh Ayachit authored
      Using `vtkMTimeStamp` instead of `unsigned long` for timestamps. This
      was causing overflows on Windows causing vtkPVDataDeliveryManager logic
      to get confused on long running animations for windows.
      96203ef0
  5. 14 Jul, 2017 1 commit
    • Utkarsh Ayachit's avatar
      Use vtkMTimeStamp for timestamp. · 1078c0f9
      Utkarsh Ayachit authored
      Using `vtkMTimeStamp` instead of `unsigned long` for timestamps. This
      was causing overflows on Windows causing vtkPVDataDeliveryManager logic
      to get confused on long running animations for windows.
      1078c0f9
  6. 28 Mar, 2017 5 commits
  7. 18 Oct, 2016 1 commit
  8. 30 Sep, 2016 1 commit
  9. 10 Jun, 2014 1 commit
    • Utkarsh Ayachit's avatar
      BUG #14729: Fix remote rendering when rendering image volumes. · 4a1d88c5
      Utkarsh Ayachit authored
      vtkPVDataDeliveryManager was using incorrect geometry size for
      vtkImageVolumeRepresentation. vtkImageVolumeRepresentation needed to
      report the true data size to vtkPVDataDeliveryManager for it make the
      correct decision. This commit fixes that by adding an API to
      vtkPVDataDeliveryManager to pass in a "true-data-size" when passing
      dataset to deliver.
      
      Change-Id: Iff1bc45e18f35b1bf1c57739b23daa7441c5ecd8
      4a1d88c5
  10. 06 Aug, 2013 1 commit
    • Utkarsh Ayachit's avatar
      BUG #14221. Avoid unnecessary gather with TextSourceRepresentation. · 8ac5e307
      Utkarsh Ayachit authored
      vtkTextSourceRepresentation was unnecessary doing a data-clone (despite the fact
      that all data-server nodes have valid data). This added unnecessary
      communication between all processes and hence was causing a performance
      degradation as experienced by BUG #14221 (and other Catalyst users). Fixed that.
      vtkTextSourceRepresentation still needs data delivered to client always (since
      the 2D renderer is not composited), but we ensure that we no longer to any
      gathers/scatters thus avoiding parallel communication.
      
      Change-Id: I98a85ef4b911f813533ab7ed7c0ee4cee2adbca1
      8ac5e307
  11. 28 Jun, 2013 1 commit
    • Utkarsh Ayachit's avatar
      BUG: Avoid redistribution of stuctured grid when volume rendering. · 69dfc499
      Utkarsh Ayachit authored
      Due to a bug in logic, despite best intentions
      vtkStructuredGridVolumeRepresentation was ending up marking its data as
      redistributable. Consequently, vtkPVDataDeliveryManager was redistributing it
      which was negating the whole purpose of having
      vtkStructuredGridVolumeRepresentation. This fixes that issues by adding API to
      vtkPVRenderView to call MarkAsRedistributable() to unmark the representation as
      redistributable.
      
      Change-Id: I8474d2f9246b90b3989510688e2a6d67223f5fcb
      69dfc499
  12. 27 Jun, 2013 1 commit
  13. 17 Oct, 2012 1 commit
    • Utkarsh Ayachit's avatar
      Cleaned up API to control ordered compositing process order. · ceb22b45
      Utkarsh Ayachit authored
      When ordered compositing is enabled, ParaView determines the process order by
      partitioning the data using PKdTree. However, in some cases, like when volume
      rendering image-data, we need to override the partitioning using the partitions
      from the image data itself. This commit cleans up the API for proving such
      information to the view from a representation. In past it was tightly coupled
      with vtkImageData producer. This change makes it possible to just pass the
      meta-data about extent-translator to use, origin, spacing, extents etc. to
      generate the partitioning. This will make it possible for non-image data
      representations to provide this meta-data without having to create a
      vtkImageData.
      
      This removes obsolete vtkBSPCutsGenerator. Also vtkKdTreeManager now always
      regenerates the KdTree. The checks to avoid regenerating unless the input
      changed have been removed.
      
      Change-Id: I469f54ba931fd64f66097d0ea579e9d8652d9bfc
      ceb22b45
  14. 16 Oct, 2012 2 commits
    • Utkarsh Ayachit's avatar
      Fixed warnings. · 469e20a1
      Utkarsh Ayachit authored
      Change-Id: Iacd01dec15644152eb9d0ff26963b34e798846b3
      469e20a1
    • Utkarsh Ayachit's avatar
      Fixed BUG #13525. Avoid rendering pipeline resets when playing animation. · 07671104
      Utkarsh Ayachit authored
      When playing animation, display lists are always discarded even if pipeline data
      didn't change with time. Although the geometry filter and the vtkPVCacheKeeper
      in vtkGeometryRepresentation didn't re-execute, the data was still treated as
      modified. This was due to the logic in vtkPVDataDeliveryManager::SetPiece(). The
      code was implemented to look at the DataTime provided by the pipeline. That was
      done so that we could detect the change in data object when representation type
      changes. However, the same can be done simply by comparing the data-object
      pointer. Doing that addresses this bug as well.
      
      Note however, in client-server mode, we still would force delivery for all
      representations when time changes irrespective of whether the data really
      changed.
      
      Change-Id: I1b41778a5e3fcfa041ff48860c5311245a5182a7
      07671104
  15. 25 Sep, 2012 2 commits
  16. 22 Sep, 2012 3 commits
    • Utkarsh Ayachit's avatar
      Cleaning up unused code. · 8359c178
      Utkarsh Ayachit authored
      Cleaning up unused code in vtkPVDataDeliveryManager. That logic has now moved to
      the representations themselves.
      8359c178
    • Utkarsh Ayachit's avatar
      Adding support for streaming in client/server configurations. · f8e2dbff
      Utkarsh Ayachit authored
      "AMR Blocks" streaming now works in client-server with local or remote
      rendering. This updates the logic for delivering streamed pieces to rendering
      nodes. Although both remote/local rendering are supported for streaming, if the
      rendering mode is changed in between, the streaming is not restarted (currently)
      and hence the blocks already delivered will not be available on the other
      processes.
      
      Tile display configuration also works.
      f8e2dbff
    • Utkarsh Ayachit's avatar
      Refactors AMR streaming framework. · 52c7392f
      Utkarsh Ayachit authored
      This commit refactors AMR streaming framework and add support for a mechanism
      for streaming composite datasets in general. To try out amr streaming, run all
      executables with "--enable-streaming" flag and open an AMR Flash or Enzo dataset
      and render as "AMR Blocks" or "Volume" (currently, only works in builtin mode,
      but will be supported in other modes soon).
      
      vtkAMROutlineRepresentation is a example class that demonstrates how a
      representation can leverage the streaming capabailities provided by
      vtkPVRenderView.
      
      vtkPVRenderView adds support to two new passes: REQUEST_STREAMING_UPDATE() and
      REQUEST_PROCESS_STREAMED_PIECE().  REQUEST_STREAMING_UPDATE() is a view pass in
      which the representations can update their data pipelines to request a certain
      "piece" of the data. REQUEST_PROCESS_STREAMED_PIECE() is called on
      representations to handle a "piece" just received by the process. This
      separation makes it possible for representations to be agnostic of where the
      data is processed and where it is rendered. It's the reposibility of the view
      (vtkPVDataDeliveryManager in particular) to deliver the data to the
      rendering nodes.
      
      vtkPVDataDeliveryManager doesn't currently support data delivery for streamed
      pieces, however. That's on the TODO list.
      52c7392f
  17. 27 Aug, 2012 1 commit
  18. 28 Jun, 2012 1 commit
  19. 06 Jun, 2012 1 commit
    • Utkarsh Ayachit's avatar
      Fixing Streaming-Delivery after view refactor. · 515827f6
      Utkarsh Ayachit authored
      vtkPVDataDeliveryManager's internal were changed as we were cleaning up the code
      so that all ParaView use-cases work with the new delivery mechanism. Fixing
      StreamingDeliver() to work after those changes. AMR streaming volume rendering
      now works again when streaming is enabled.
      515827f6
  20. 28 May, 2012 3 commits
  21. 25 May, 2012 1 commit
    • Utkarsh Ayachit's avatar
      Fixed Slice representation in client-server modes. · 41b198fe
      Utkarsh Ayachit authored
      vtkPVDataDeliveryManager was ending up not requesting new data when slice
      parameters were changed. This happened because the mtime we used in
      vtkPVDataDeliveryManager used the data-time, which clearly didn't change on the
      client after every update. Since vtkPVDataDeliveryManager::SetPiece() uses the
      executive's data-time to check if data was really updated, we shouldn't use the
      data mtime in vtkPVDataDeliveryManager's SetDataObject() call.
      41b198fe
  22. 20 May, 2012 1 commit
    • Utkarsh Ayachit's avatar
      Cleaned up ordered compositing code. · d2fe1dd8
      Utkarsh Ayachit authored
      * Reintroduced support for generating kdtree using image data extents.
      * Restructured code to ensure redistribution happens correctly for every render.
        The previous implementation required that the client triggered the
        redistribution in Delivery() call which was not possible esp. as
        representations were added/removed (since Delivery() is only called when data
        really needs to be delivered which is not the case when representations are
        removed).
      d2fe1dd8
  23. 19 May, 2012 1 commit
    • Utkarsh Ayachit's avatar
      Refactoring surface-selection mechanism. · ef2cf1ae
      Utkarsh Ayachit authored
      * Surface selection now works in local-rendering mode (as well as remote
        rendering mode). It expects the vtkPVGeometryFilter to generate process ids
        (vtkProcessId) array in parallel. When present, it is used to determine the
        process id.
      * Selection rendering passes now render the "original ids" rather than the
        point/cell ids. Thus representations no longer need to "convert" selection.
        They just need to ensure that they render the correct ids in the selection
        rendering passes.
      
      This makes it possible to determine the "selection" directly on the client.
      Thus, we no longer need to gather the selection from the server side.
      ef2cf1ae
  24. 18 May, 2012 7 commits