HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
extCompGpuComputation.h File Reference
#include "pxr/pxr.h"
#include "pxr/imaging/hdSt/api.h"
#include "pxr/imaging/hdSt/computation.h"
#include "pxr/imaging/hdSt/extCompGpuComputationResource.h"
#include "pxr/imaging/hd/bufferSource.h"
#include "pxr/usd/sdf/path.h"
#include "pxr/base/tf/token.h"
#include "pxr/base/vt/value.h"
#include <memory>
#include <vector>
+ Include dependency graph for extCompGpuComputation.h:

Go to the source code of this file.

Classes

class  HdStExtCompGpuComputation
 

Typedefs

using HdStGLSLProgramSharedPtr = std::shared_ptr< class HdStGLSLProgram >
 
using HdExtComputationPrimvarDescriptorVector = std::vector< struct HdExtComputationPrimvarDescriptor >
 
using HdStExtCompGpuComputationSharedPtr = std::shared_ptr< class HdStExtCompGpuComputation >
 

Functions

HDST_API void HdSt_GetExtComputationPrimvarsComputations (const SdfPath &id, HdSceneDelegate *sceneDelegate, HdExtComputationPrimvarDescriptorVector const &allCompPrimvars, HdDirtyBits dirtyBits, HdBufferSourceSharedPtrVector *sources, HdBufferSourceSharedPtrVector *reserveOnlySources, HdBufferSourceSharedPtrVector *separateComputationSources, HdStComputationComputeQueuePairVector *computations)
 

Typedef Documentation

Definition at line 46 of file extCompGpuComputation.h.

Function Documentation

HDST_API void HdSt_GetExtComputationPrimvarsComputations ( const SdfPath id,
HdSceneDelegate sceneDelegate,
HdExtComputationPrimvarDescriptorVector const allCompPrimvars,
HdDirtyBits  dirtyBits,
HdBufferSourceSharedPtrVector sources,
HdBufferSourceSharedPtrVector reserveOnlySources,
HdBufferSourceSharedPtrVector separateComputationSources,
HdStComputationComputeQueuePairVector computations 
)

Obtains a set of ExtComputation primvar source computations needed for this Rprim.

The list of computed primvar descriptors for an interpolation mode is passed in.

The scene delegate also provides information about which output on which computation is providing the source of the primvar.

Based on the information, the function creates the necessary computations and appends them on to the sources list (the sources vector need not be empty).

The caller is expected to pass these computation on these computations onto the resource registry (associating them with BARs if it is expected the primvar will be downloaded) Additional sources that should be associated with BARs but do not otherwise need to be scheduled for commit will be returned in reserveOnlySources.

The computation may also need to add sources that are resolved against internal BARs that are not to be associated with the primvar BAR. Those are returned in the separateComputationSources vector. The caller is expected to add them to the resource registry if the computation is needed.