Commit Graph

680 Commits

Author SHA1 Message Date
Matt Larsen
4c0a3858b2 don't always normalize scalars 2020-04-23 10:31:39 -07:00
nadavi
c9cbd9693d fix type warnings 2020-04-22 12:29:40 -06:00
nadavi
62fe68acdd fixes to match old files 2020-04-22 12:18:43 -06:00
nadavi
e925d6d54c turn lodepng into a library 2020-04-22 12:07:32 -06:00
Nick
1d4ebaec9f Image was upside down; flip it over, demo usage. 2020-04-17 07:56:03 -04:00
Nick
4e76c00a42 Fix linker error and multiply defined symbols. 2020-04-17 07:32:01 -04:00
Nick
eb36a07ab7 Use logging framework [CI SKIP] 2020-04-17 06:53:32 -04:00
Nick
104e7bd9c2 Halting first steps towards encoding .pngs. 2020-04-17 06:22:30 -04:00
Matt Larsen
0a6f66986c add whitespace 2020-04-07 18:08:02 -07:00
Matt Larsen
ecd1512dd6 render 2d mesh lines 2020-04-07 13:13:10 -07:00
Jérôme Dubois
4416f85543 Fixing ColorTable::PrepareForExecution and DispatcherMapField 2020-04-03 14:14:29 +02:00
James
46d7d1865a Merge remote-tracking branch 'upstream/master' into Enhance-Testing-From-File 2020-03-27 11:33:18 -04:00
Kenneth Moreland
b54719b4e0 Merge topic 'modify-default-policy'
42bc9a393 Fix gaps in type support
dc112b516 Enable changing policy used for library compiles
76f870150 Type check input and output array arguments differently

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1997
2020-03-24 12:17:23 -04:00
James
95ba497bb2 Merge remote-tracking branch 'upstream/master' into Enhance-Testing-From-File 2020-03-24 10:53:06 -04:00
Kenneth Moreland
dec4b96d38 Fix warning about using a deprecated method 2020-03-23 10:23:47 -06:00
Matt Larsen
6a809676d6 re-set ray camera for default light 2020-03-21 14:07:05 -07:00
Matt Larsen
e889373686 fix scalar renderer portal warning 2020-03-21 08:29:19 -07:00
Matt Larsen
d9cfb8687f Merge topic 'scalar_renderer'
33a154337 add deprecation
a7363c283 alter interface of scalar renderer result
5fc77cb58 warnings and store depth separately
aa468f5c0 more warning fixes
0943784c2 fix warning
094758e55 make result public?
70584ac8f fix benchmarks
458be65e9 fix logic error
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1962
2020-03-21 10:28:12 -04:00
Kenneth Moreland
42bc9a393c Fix gaps in type support
With recent changes to allow a configuration to change the default
types, storage, and cell sets, it is possible to feed filters and other
components types they were not previously expecting. Fix feature gaps
where these components were not accepting the types they should.
2020-03-19 17:07:11 -06:00
Kenneth Moreland
dc112b5169 Enable changing policy used for library compiles
Previously, the PolicyDefault used to compile all the filters was hard-
coded. The problem was that if any external project that depends on VTK-
m needs a different policy, it had to recompile everything in its own
translation units with a custom policy.

This change allows an external project provide a simple header file that
changes the type lists used in the default policy. That allows VTK-m to
compile the filters exactly as specified by the external project.
2020-03-19 15:07:07 -06:00
Matt Larsen
23075d5ff5 remove fake functors 2020-03-15 14:56:02 -07:00
Matt Larsen
a7097d92f8 actually ensure that lost rays move forward 2020-03-15 13:49:02 -07:00
Kenneth Moreland
51e817adc1 Introduce vtkm::ErrorCode
This is a flag that functions in the execution environment can return to
report on the status of the operation. This way they can report an error
without forcing the entire invocation to shut down.
2020-03-13 18:58:33 -06:00
James
8579d54cb9 Merge remote-tracking branch 'upstream/master' into Enhance-Testing-From-File 2020-03-12 10:10:03 -04:00
Kenneth Moreland
04edc3d202 Avoid raising errors when operating on cells
Cell operations like interpolate and finding parametric coordinates can
fail under certain conditions. Typically these call RaiseError on the
worklet. But that can make a worklet unstable, so provide paths where no
error is raised.
2020-03-12 07:50:01 -06:00
Matt Larsen
bf3ebaa1c7 prevent raise error from raising error 2020-03-11 14:56:42 -07:00
James
7a73b0f547 Updating testing 2020-03-11 13:55:14 -04:00
mclarsen
aa7dcf915f push forward until new valid cell 2020-03-10 15:47:27 -07:00
mclarsen
6aafc42f13 move forward until encountering new cell for lost rays 2020-03-10 15:16:57 -07:00
Matt Larsen
446a1c5657 fix unreachable warning 2020-03-09 19:49:03 -07:00
Matt Larsen
3b123594fb Longer fixed message 2020-03-06 09:25:50 -08:00
Kenneth Moreland
69c03d902d Fix deadlock in rendering 2020-02-26 13:10:49 -07:00
Kenneth Moreland
ec34cb56c4 Use new ways to get array portal in control environment
Also fix deadlocks that occur when portals are not destroyed
in time.
2020-02-26 13:10:46 -07:00
Kenneth Moreland
ad0a53af71 Convert execution preparation to use tokens
Marked the old versions of PrepareFor* that do not use tokens as
deprecated and moved all of the code to use the new versions that
require a token. This makes the scope of the execution object more
explicit so that it will be kept while in use and can potentially be
reclaimed afterward.
2020-02-25 09:39:19 -07:00
Matt Larsen
33a154337a add deprecation 2020-02-18 09:51:56 -08:00
Matt Larsen
a7363c283c alter interface of scalar renderer result 2020-02-18 09:45:31 -08:00
Matt Larsen
5fc77cb585 warnings and store depth separately 2020-02-18 07:25:00 -08:00
Matt Larsen
aa468f5c00 more warning fixes 2020-02-17 20:09:51 -08:00
Matt Larsen
0943784c22 fix warning 2020-02-17 19:53:54 -08:00
Matt Larsen
094758e55a make result public? 2020-02-17 19:50:40 -08:00
Matt Larsen
458be65e9b fix logic error 2020-02-17 19:06:28 -08:00
Matt Larsen
b4b7519584 let there be scalar things 2020-02-17 19:00:09 -08:00
Matt Larsen
1fc064dcf8 create scalar renderer 2020-02-09 08:57:32 -08:00
mclarsen
9e77a8b4cd add files for a scalar renderer 2020-02-07 20:30:55 -08:00
mclarsen
d4305c0435 remove unused variable 2020-02-07 15:16:09 -08:00
James
6162fdc591 Moving new test code to the Testing.h header. 2020-01-08 14:32:15 -05:00
James
9d7fc3e6aa Merge branch 'Enhance-Testing-With-Data-From-Files' of https://gitlab.kitware.com/jameskress/vtk-m into Enhance-Testing-With-Data-From-Files 2020-01-08 09:34:42 -05:00
James
10d9f89258 Making the test data path available via a static function call. 2020-01-07 15:56:00 -05:00
James
743094ffc9 Adding parser for arguments. 2019-12-17 11:07:47 -05:00
James
7e3178ffe4 Starting to add data directory to unit tests. 2019-12-10 13:56:31 -05:00
Kenneth Moreland
d5fe4046c5 Remove instances of ListTag in favor of List 2019-12-06 21:32:36 -07:00
Kenneth Moreland
92db376236 Convert uses of ListTagBase to List 2019-12-06 15:37:46 -07:00
Kenneth Moreland
cd302effb3 Update lists in TypeListTag.h
A new header named TypeList.h and the type lists have been redefined in
this new file. All the types have been renamed from `TypeListTag*` to
`TypeList*`. TypeListTag.h has been gutted to provide deprecated
versions of the old type list names.

There were also some other type lists that were changed from using the
old `ListTagBase` to the new `List`.
2019-12-05 11:05:19 -07:00
mclarsen
c021ef1887 remove serial only timers to avoid warnings 2019-11-25 08:38:36 -08:00
Allison Vacanti
3886b7dfb8 Refactor CellSetExplicit to remove NumIndices.
See #408 for details.
2019-09-30 12:27:13 -04:00
Robert Maynard
3b89bc0db2 CellSet classes don't require a name 2019-09-02 10:39:58 -04:00
Robert Maynard
89fa2c0293 Remove multiple vtkm::cont::CellSet from vtkm::cont::DataSet
By removing the ability to have multiple CellSets in a DataSet
we can simplify the following things:

  - Cell Fields now don't require a CellSet name when being constructed
  - Filters don't need to manage what the active cellset is
2019-09-02 09:04:51 -04:00
Robert Maynard
031407443d Provide simplified way to construct point and cell fields 2019-08-15 11:03:41 -04:00
Allison Vacanti
5db762ee71 Refactor topology mappings to clarify meaning.
The `From` and `To` nomenclature for topology mapping has been confusing for
both users and developers, especially at lower levels where the intention of
mapping attributes from one element to another is easily conflated with the
concept of mapping indices (which maps in the exact opposite direction).

These identifiers have been renamed to `VisitTopology` and `IncidentTopology`
to clarify the direction of the mapping. The order in which these template
parameters are specified for `WorkletMapTopology` have also been reversed,
since eventually there may be more than one `IncidentTopology`, and having
`IncidentTopology` at the end will allow us to replace it with a variadic
template parameter pack in the future.

Other implementation details supporting these worklets, include `Fetch` tags,
`Connectivity` classes, and methods on the various `CellSet` classes (such as
`PrepareForInput` have also reversed their template arguments. These will need
to be cautiously updated.

The convenience implementations of `WorkletMapTopology` have been renamed for
clarity as follows:

```
WorkletMapPointToCell --> WorkletVisitCellsWithPoints
WorkletMapCellToPoint --> WorkletVisitPointsWithCells
```

The `ControlSignature` tags have been renamed as follows:

```
FieldInTo --> FieldInVisit
FieldInFrom --> FieldInMap
FromCount --> IncidentElementCount
FromIndices --> IncidentElementIndices
```
2019-08-06 11:27:26 -04:00
Robert Maynard
2eeeafc1f5 Merge topic 'move_invoker_to_cont'
7e04b0511 Move Invoker into vtkm/cont

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1745
2019-08-01 12:36:00 -04:00
Robert Maynard
7e04b0511f Move Invoker into vtkm/cont
The Invoker is a control side object that handles the construction
of the relevant worklet dispatcher. Moving it to control makes it
obvious that it isn't an algorithm itself but a way to launch
worklets.
2019-08-01 12:34:27 -04:00
Kenneth Moreland
0be50c119d Update VTK-m code to use new Vec aliases
Should make the code easier to read.
2019-07-31 12:55:40 -06:00
Robert Maynard
46a1df6c18 DecodePNG uses the namespaced lodepng from thirdparty/ 2019-07-17 14:21:33 -04:00
Robert Maynard
e934e2273c vtkm_library WRAP_FOR_CUDA renamed to clarify the intent of the property
We want the option name to be clear that it might be applicable for
more than just CUDA. If VTK-m ever supported something like SYCL
it would not be clear that those sources should go in `WRAP_FOR_CUDA`.
2019-07-09 13:04:07 -04:00
Mark Kim
cffd3873fc Merge branch 'advdatamodel' 2019-06-20 22:20:44 -04:00
Mark Kim
6e1d3a84f0 First Extrude commit.
how did any of this work?

match other CellSet file layouts.

???

compile in CUDA.

unit tests.

also only serial.

make error message accurate

Well, this compiles and works now.

Did it ever?

use CellShapeTagGeneric

UnitTest matches previous changes.

whoops

Fix linking problems.

Need the same interface

as other ThreadIndices.

add filter test

okay, let's try duplicating CellSetStructure.

okay

inching...

change to wedge in CellSetListTag

Means changing these to support it.

switch back to wedge from generic

compiles and runs

remove ExtrudedType

need vtkm_worklet

vtkm_worklet needs to be included

fix segment count for wedge specialization

need to actually save the index

for the other constructor.

specialize on Explicit

clean up warning

angled brackets not quotes.

formatting
2019-06-20 22:17:24 -04:00
Robert Maynard
23aeff054e vtkm_rendering now uses vtkm/thirdparty/lodepng
Previously it used a version of the decode routines from lodepng
inside the decode functionality.
2019-06-19 14:39:46 -04:00
Robert Maynard
fa03dc664a ScopedRuntimeDeviceTracker requires a device to execute on when constructed.
To simplify using the ScopedRuntimeDeviceTracker it now takes the
device id you want to run on during construction.
2019-05-21 11:17:37 -04:00
Robert Maynard
e9482018ee ScopedRuntimeDeviceTracker has the same API as RuntimeDeviceTracker 2019-05-15 17:26:31 -04:00
Robert Maynard
674fe1fbf2 StealArray now returns the array and free function as a Pair.
This helps reduces bugs when the callers ask to steal arrays
without getting the free function, or ask for the free function
after stealing the array.
2019-05-01 09:42:57 -04:00
Robert Maynard
ff687016ee For VTK-m libs all includes of DeviceAdapterTagCuda happen from cuda files
It is very easy to cause ODR violations with DeviceAdapterTagCuda.
If you include that header from a C++ file and a CUDA file inside
the same program we an ODR violation. The reasons is that the C++
versions will say the tag is invalid, and the CUDA will say the
tag is valid.

The solution to this is that any compilation unit that includes
DeviceAdapterTagCuda from a version of VTK-m that has CUDA enabled
must be invoked by the cuda compiler.
2019-04-22 10:39:54 -04:00
nadavi
fbcea82e78 conslidate the license statement 2019-04-17 10:57:13 -06:00
Robert Maynard
ff30684c8e Removes the default device macros from VTK-m
Fixes #116
2019-04-15 08:15:36 -04:00
Kenneth Moreland
04254dbd25 Merge topic 'specialize-worklet-for-device'
4e34feecb Add ability to specialize worklet for device

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sujin Philip <sujin.philip@kitware.com>
Merge-request: !1608
2019-04-02 12:08:01 -04:00
Kenneth Moreland
4e34feecb4 Add ability to specialize worklet for device
This adds an ExecutionSignature tag named Device that passes the
DeviceAdapterTag as an argument to the worklet's operator(). This allows
worklets to specialize their code based on the device.
2019-04-01 10:01:54 -06:00
Robert Maynard
18ff6681fb Less vtkm_cont cxx files bring in the cuda device
When you have CUDA enabled we need to make sure that all worklet
launches come from a cuda file otherwise we will generate ODR
violations.
2019-04-01 08:21:07 -04:00
Robert Maynard
ae11e115a0 RuntimeDeviceTracker: Remove Global from names 2019-03-22 08:53:26 -07:00
Matt Larsen
cbe9b261ed Merge topic 'fix/rendering_ctable_sampling'
82e230093 forcing serial sample again
b509081a9 Just disable CUDA for ctable sampling
cc20f8019 forcing color table sampling to be serial inside rendering lib

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1580
2019-03-15 18:31:14 -04:00
Sujin Philip
d4e1c18254 Update existing code to use the new functions 2019-03-15 13:28:55 -04:00
mclarsen
82e2300934 forcing serial sample again 2019-03-15 10:08:43 -07:00
mclarsen
b509081a9d Just disable CUDA for ctable sampling 2019-03-14 13:57:17 -07:00
mclarsen
cc20f80196 forcing color table sampling to be serial inside rendering lib 2019-03-14 13:28:13 -07:00
mclarsen
b03fec9a31 bvh device adpater banishment 2019-02-25 15:27:42 -08:00
mclarsen
8a38717c38 have make_shared call default constructor 2019-02-22 08:49:42 -08:00
mclarsen
3fae21fa7d no pointers 2019-02-22 08:22:29 -08:00
mclarsen
4cd4637c18 ray tracing now using shared pointers for intersectors 2019-02-22 08:06:04 -08:00
Haocheng LIU
d195240165 Refactor View class and fix its memory leak 2019-02-11 16:32:27 -05:00
Haocheng LIU
415252c662 Introduce asynchronous and device independent timer
The timer class now is asynchronous and device independent. it's using an
similiar API as vtkOpenGLRenderTimer with Start(), Stop(), Reset(), Ready(),
and GetElapsedTime() function. For convenience and backward compability, Each
Start() function call will call Reset() internally and each GetElapsedTime()
function call will call Stop() function if it hasn't been called yet for keeping
backward compatibility purpose.

Bascially it can be used in two modes:

* Create a Timer without any device info. vtkm::cont::Timer time;

  * It would enable timers for all enabled devices on the machine. Users can get a
specific elapsed time by passing a device id into the GetElapsedtime function.
If no device is provided, it would pick the maximum of all timer results - the
logic behind this decision is that if cuda is disabled, openmp, serial and tbb
roughly give the same results; if cuda is enabled it's safe to return the
maximum elapsed time since users are more interested in the device execution
time rather than the kernal launch time. The Ready function can be handy here
to query the status of the timer.

* Create a Timer with a device id. vtkm::cont::Timer time((vtkm::cont::DeviceAdapterTagCuda()));

  * It works as the old timer that times for a specific device id.
2019-02-05 12:01:56 -05:00
Robert Maynard
c501500e1d Install missing headers found by VTKmCheckSourceInInstall 2019-01-29 14:46:27 -05:00
Kenneth Moreland
887f79c6f4 Make a vtkm_worklet library
This is a library that contains parts of worklets that can be
precompiled into a library.

Currently, this library contains the implementation of ScatterCounting.
2019-01-23 17:09:15 -07:00
Robert Maynard
d6f66d17a3 Testing run methods now take argc/argv to init logging/runtime device
`vtkm::cont::testing` now initializes with logging enabled and support
for device being passed on the command line, `vtkm::testing` only
enables logging.
2019-01-17 13:16:27 -06:00
Haocheng LIU
2f20549b4b Merge rendering testing executables to a shared library
This commit allows rendering testing executables to select the device at runtime.
2019-01-14 14:20:00 -05:00
Kenneth Moreland
b2e20bf90e Fix issues from removing field type templates
The script fixed up most of the issues. However, there were some
instances that the script was not able to pick up on. There were
also some instances that still needed a means to select types.
2019-01-11 12:23:19 -07:00
Kenneth Moreland
2e426ad547 Run the update-control-signature-tags.sh script 2019-01-11 12:23:10 -07:00
Robert Maynard
f848bc3541 Correct warnings from switch statements with no case labels. 2019-01-10 15:16:53 -05:00
Robert Maynard
90bca8a53f Remove unnecessary constructor from IntersectionPointMap 2019-01-10 09:25:27 -05:00
Robert Maynard
0a40c620ac Rename ArrayHandleVariant to VariantArrayHandle. 2018-12-27 14:35:56 -05:00
Robert Maynard
09383ceb52 Update vtkm/rendering to work with vtkm::cont::ArrayHandleVariant 2018-12-27 14:35:56 -05:00
Robert Maynard
65b019d443 raytracing intersector kernels use FieldOut where appropriate.
Previously a couple used FieldInOut when they only needed FieldOut,
this can help performance if the input is not already on the device
2018-12-27 13:19:40 -05:00
Robert Maynard
7ba3c66727 Make sure rendering builds Actor with cuda as it calls worklets 2018-12-27 13:19:40 -05:00