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 {
return _gpuKernelSource; }
113 bool IsInputAggregation()
const;
120 HdDirtyBits *dirtyBits);
123 static bool _IsEnabledSharedExtComputationData();
126 size_t _dispatchCount;
127 size_t _elementCount;
129 HdExtComputationInputDescriptorVector _computationInputs;
130 HdExtComputationOutputDescriptorVector _computationOutputs;
131 std::string _gpuKernelSource;
140PXR_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.
std::vector< TfToken > TfTokenVector
Convenience types.