24 #ifndef PXR_IMAGING_HD_EXT_COMPUTATION_H
25 #define PXR_IMAGING_HD_EXT_COMPUTATION_H
28 #include "pxr/imaging/hd/api.h"
29 #include "pxr/imaging/hd/sceneDelegate.h"
30 #include "pxr/imaging/hd/sprim.h"
31 #include "pxr/imaging/hd/types.h"
32 #include "pxr/usd/sdf/path.h"
33 #include "pxr/base/vt/value.h"
36 PXR_NAMESPACE_OPEN_SCOPE
67 virtual ~HdExtComputation() =
default;
98 HdDirtyBits *dirtyBits)
override;
104 size_t GetDispatchCount()
const;
107 size_t GetElementCount()
const {
return _elementCount; }
111 return _sceneInputNames;
118 HdExtComputationInputDescriptorVector
const &
119 GetComputationInputs()
const {
120 return _computationInputs;
124 HdExtComputationOutputDescriptorVector
const &
125 GetComputationOutputs()
const {
126 return _computationOutputs;
130 const std::string& GetGpuKernelSource()
const {
return _gpuKernelSource; }
133 bool IsInputAggregation()
const;
140 HdDirtyBits *dirtyBits);
143 static bool _IsEnabledSharedExtComputationData();
146 size_t _dispatchCount;
147 size_t _elementCount;
149 HdExtComputationInputDescriptorVector _computationInputs;
150 HdExtComputationOutputDescriptorVector _computationOutputs;
151 std::string _gpuKernelSource;
154 HdExtComputation() =
delete;
155 HdExtComputation(
const HdExtComputation &) =
delete;
156 HdExtComputation &operator =(
const HdExtComputation &) =
delete;
160 PXR_NAMESPACE_CLOSE_SCOPE
162 #endif // PXR_IMAGING_HD_EXT_COMPUTATION_H
Hydra Representation of a Client defined computation.
virtual HD_API HdDirtyBits GetInitialDirtyBitsMask() const override
Returns the minimal set of dirty bits to place in the change tracker for use in the first sync of thi...
The HdRenderParam is an opaque (to core Hydra) handle, to an object that is obtained from the render ...
Adapter class providing data exchange with the client scene graph.
The list of outputs changed.
std::vector< TfToken > TfTokenVector
Convenience types.
A path value used to locate objects in layers or scenegraphs.
DirtyBits
Change tracking.
Sprim (state prim) is a base class of managing state for non-drawable scene entity (e...
The number of kernel invocations to execute changed.
A computation input changed value.
The compute kernel binding changed.
The number of elements in the output arrays changed.
virtual HD_API void Sync(HdSceneDelegate *sceneDelegate, HdRenderParam *renderParam, HdDirtyBits *dirtyBits) override
Synchronizes state from the delegate to this object.
A scene input changed value.
The list of inputs or input bindings changed.