7#ifndef PXR_IMAGING_HD_EXT_COMPUTATION_H
8#define PXR_IMAGING_HD_EXT_COMPUTATION_H
11#include "pxr/imaging/hd/api.h"
12#include "pxr/imaging/hd/sceneDelegate.h"
13#include "pxr/imaging/hd/sprim.h"
15PXR_NAMESPACE_OPEN_SCOPE
78 HdDirtyBits *dirtyBits)
override;
84 size_t GetDispatchCount()
const;
87 size_t GetElementCount()
const {
return _elementCount; }
91 return _sceneInputNames;
98 HdExtComputationInputDescriptorVector
const &
99 GetComputationInputs()
const {
100 return _computationInputs;
104 HdExtComputationOutputDescriptorVector
const &
105 GetComputationOutputs()
const {
106 return _computationOutputs;
110 const std::string& GetGpuKernelSource()
const {
115 bool IsInputAggregation()
const;
122 HdDirtyBits *dirtyBits);
125 static bool _IsEnabledSharedExtComputationData();
128 size_t _dispatchCount;
129 size_t _elementCount;
131 HdExtComputationInputDescriptorVector _computationInputs;
132 HdExtComputationOutputDescriptorVector _computationOutputs;
142PXR_NAMESPACE_CLOSE_SCOPE
Hydra Representation of a Client defined computation.
DirtyBits
Change tracking.
@ DirtyCompInput
A computation input changed value.
@ DirtyKernel
The compute kernel binding changed.
@ DirtySceneInput
A scene input changed value.
@ DirtyDispatchCount
The number of kernel invocations to execute changed.
@ DirtyElementCount
The number of elements in the output arrays changed.
@ DirtyOutputDesc
The list of outputs changed.
@ DirtyInputDesc
The list of inputs or input bindings changed.
HD_API void Sync(HdSceneDelegate *sceneDelegate, HdRenderParam *renderParam, HdDirtyBits *dirtyBits) override
Synchronizes state from the delegate to this object.
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...
HD_API HdExtComputation(SdfPath const &id)
Construct a new ExtComputation identified by id.
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.
Sprim (state prim) is a base class of managing state for non-drawable scene entity (e....
A path value used to locate objects in layers or scenegraphs.
Token for efficient comparison, assignment, and hashing of known strings.
std::string const & GetString() const
Return the string that this token represents.
std::vector< TfToken > TfTokenVector
Convenience types.