|
| HF_MALLOC_TAG_NEW ("new HdStResourceRegistry") |
|
HDST_API | HdStResourceRegistry (Hgi *hgi) |
|
HDST_API | ~HdStResourceRegistry () override |
|
HDST_API void | InvalidateShaderRegistry () override |
| Invalidate any shaders registered with this registry. More...
|
|
HDST_API void | ReloadResource (TfToken const &resourceType, std::string const &path) override |
|
HDST_API VtDictionary | GetResourceAllocation () const override |
|
HDST_API Hgi * | GetHgi () |
| Returns Hgi used to create/destroy GPU resources. More...
|
|
HDST_API HdStTextureHandleSharedPtr | AllocateTextureHandle (const HdStTextureIdentifier &textureId, HdTextureType textureType, const HdSamplerParameters &samplerParams, size_t memoryRequest, HdStShaderCodePtr const &shaderCode) |
|
HDST_API HdStTextureObjectSharedPtr | AllocateTextureObject (const HdStTextureIdentifier &textureId, HdTextureType textureType) |
|
HDST_API void | SetMemoryRequestForTextureType (HdTextureType textureType, size_t memoryRequest) |
|
HDST_API
HdBufferArrayRangeSharedPtr | AllocateNonUniformBufferArrayRange (TfToken const &role, HdBufferSpecVector const &bufferSpecs, HdBufferArrayUsageHint usageHint) |
|
HDST_API
HdBufferArrayRangeSharedPtr | AllocateNonUniformImmutableBufferArrayRange (TfToken const &role, HdBufferSpecVector const &bufferSpecs, HdBufferArrayUsageHint usageHint) |
|
HDST_API
HdBufferArrayRangeSharedPtr | AllocateUniformBufferArrayRange (TfToken const &role, HdBufferSpecVector const &bufferSpecs, HdBufferArrayUsageHint usageHint) |
|
HDST_API
HdBufferArrayRangeSharedPtr | AllocateShaderStorageBufferArrayRange (TfToken const &role, HdBufferSpecVector const &bufferSpecs, HdBufferArrayUsageHint usageHint) |
|
HDST_API
HdBufferArrayRangeSharedPtr | AllocateSingleBufferArrayRange (TfToken const &role, HdBufferSpecVector const &bufferSpecs, HdBufferArrayUsageHint usageHint) |
|
HDST_API
HdBufferArrayRangeSharedPtr | UpdateNonUniformBufferArrayRange (TfToken const &role, HdBufferArrayRangeSharedPtr const &curRange, HdBufferSpecVector const &updatedOrAddedSpecs, HdBufferSpecVector const &removedSpecs, HdBufferArrayUsageHint usageHint) |
|
HDST_API
HdBufferArrayRangeSharedPtr | UpdateNonUniformImmutableBufferArrayRange (TfToken const &role, HdBufferArrayRangeSharedPtr const &curRange, HdBufferSpecVector const &updatedOrAddedSpecs, HdBufferSpecVector const &removedSpecs, HdBufferArrayUsageHint usageHint) |
|
HDST_API
HdBufferArrayRangeSharedPtr | UpdateUniformBufferArrayRange (TfToken const &role, HdBufferArrayRangeSharedPtr const &curRange, HdBufferSpecVector const &updatedOrAddedSpecs, HdBufferSpecVector const &removedSpecs, HdBufferArrayUsageHint usageHint) |
|
HDST_API
HdBufferArrayRangeSharedPtr | UpdateShaderStorageBufferArrayRange (TfToken const &role, HdBufferArrayRangeSharedPtr const &curRange, HdBufferSpecVector const &updatedOrAddedSpecs, HdBufferSpecVector const &removedSpecs, HdBufferArrayUsageHint usageHint) |
|
HDST_API void | AddSources (HdBufferArrayRangeSharedPtr const &range, HdBufferSourceSharedPtrVector &&sources) |
| Append source data for given range to be committed later. More...
|
|
HDST_API void | AddSource (HdBufferArrayRangeSharedPtr const &range, HdBufferSourceSharedPtr const &source) |
| Append a source data for given range to be committed later. More...
|
|
HDST_API void | AddSource (HdBufferSourceSharedPtr const &source) |
| Append a source data just to be resolved (used for cpu computations). More...
|
|
HDST_API void | AddComputation (HdBufferArrayRangeSharedPtr const &range, HdStComputationSharedPtr const &computation, HdStComputeQueue const queue) |
|
HDST_API
HdStDispatchBufferSharedPtr | RegisterDispatchBuffer (TfToken const &role, int count, int commandNumUints) |
|
HDST_API
HdStBufferResourceSharedPtr | RegisterBufferResource (TfToken const &role, HdTupleType tupleType, HgiBufferUsage bufferUsage) |
|
HDST_API void | GarbageCollectDispatchBuffers () |
| Remove any entries associated with expired dispatch buffers. More...
|
|
HDST_API void | GarbageCollectBufferResources () |
| Remove any entries associated with expired misc buffers. More...
|
|
HDST_API HdInstance
< HdSt_MeshTopologySharedPtr > | RegisterMeshTopology (HdInstance< HdSt_MeshTopologySharedPtr >::ID id) |
| Topology instancing. More...
|
|
HDST_API HdInstance
< HdSt_BasisCurvesTopologySharedPtr > | RegisterBasisCurvesTopology (HdInstance< HdSt_BasisCurvesTopologySharedPtr >::ID id) |
|
HDST_API HdInstance
< HdSt_VertexAdjacencyBuilderSharedPtr > | RegisterVertexAdjacencyBuilder (HdInstance< HdSt_VertexAdjacencyBuilderSharedPtr >::ID id) |
|
HDST_API HdInstance
< HdBufferArrayRangeSharedPtr > | RegisterMeshIndexRange (HdInstance< HdBufferArrayRangeSharedPtr >::ID id, TfToken const &name) |
|
HDST_API HdInstance
< HdBufferArrayRangeSharedPtr > | RegisterBasisCurvesIndexRange (HdInstance< HdBufferArrayRangeSharedPtr >::ID id, TfToken const &name) |
|
HDST_API HdInstance
< HdBufferArrayRangeSharedPtr > | RegisterPrimvarRange (HdInstance< HdBufferArrayRangeSharedPtr >::ID id) |
|
HDST_API HdInstance
< HdBufferArrayRangeSharedPtr > | RegisterExtComputationDataRange (HdInstance< HdBufferArrayRangeSharedPtr >::ID id) |
|
HDST_API HdInstance
< HdSt_GeometricShaderSharedPtr > | RegisterGeometricShader (HdInstance< HdSt_GeometricShaderSharedPtr >::ID id) |
| Register a geometric shader. More...
|
|
HDST_API HdInstance
< HdStGLSLProgramSharedPtr > | RegisterGLSLProgram (HdInstance< HdStGLSLProgramSharedPtr >::ID id) |
| Register a GLSL program into the program registry. More...
|
|
HDST_API HdInstance
< HioGlslfxSharedPtr > | RegisterGLSLFXFile (HdInstance< HioGlslfxSharedPtr >::ID id) |
| Register a GLSLFX file. More...
|
|
HDST_API HdInstance
< HgiResourceBindingsSharedPtr > | RegisterResourceBindings (HdInstance< HgiResourceBindingsSharedPtr >::ID id) |
| Register a Hgi resource bindings into the registry. More...
|
|
HDST_API HdInstance
< HgiGraphicsPipelineSharedPtr > | RegisterGraphicsPipeline (HdInstance< HgiGraphicsPipelineSharedPtr >::ID id) |
| Register a Hgi graphics pipeline into the registry. More...
|
|
HDST_API HdInstance
< HgiComputePipelineSharedPtr > | RegisterComputePipeline (HdInstance< HgiComputePipelineSharedPtr >::ID id) |
| Register a Hgi compute pipeline into the registry. More...
|
|
HDST_API HgiBlitCmds * | GetGlobalBlitCmds () |
|
HDST_API HgiComputeCmds * | GetGlobalComputeCmds (HgiComputeDispatch dispatchMethod=HgiComputeDispatchSerial) |
|
HDST_API void | SubmitBlitWork (HgiSubmitWaitType wait=HgiSubmitWaitTypeNoWait) |
|
HDST_API void | SubmitComputeWork (HgiSubmitWaitType wait=HgiSubmitWaitTypeNoWait) |
|
HDST_API HdStStagingBuffer * | GetStagingBuffer () |
| Returns the staging buffer used when committing data to the GPU. More...
|
|
void | SetNonUniformAggregationStrategy (std::unique_ptr< HdStAggregationStrategy > &&strategy) |
|
void | SetNonUniformImmutableAggregationStrategy (std::unique_ptr< HdStAggregationStrategy > &&strategy) |
|
void | SetUniformAggregationStrategy (std::unique_ptr< HdStAggregationStrategy > &&strategy) |
|
void | SetShaderStorageAggregationStrategy (std::unique_ptr< HdStAggregationStrategy > &&strategy) |
|
void | SetSingleStorageAggregationStrategy (std::unique_ptr< HdStAggregationStrategy > &&strategy) |
|
| HF_MALLOC_TAG_NEW ("new HdResourceRegistry") |
|
HD_API | HdResourceRegistry () |
|
virtual HD_API | ~HdResourceRegistry () |
|
HD_API void | Commit () |
| Commits all in-flight source data. More...
|
|
HD_API void | GarbageCollect () |
| cleanup all buffers and remove if empty More...
|
|
A central registry of all GPU resources.
Definition at line 121 of file resourceRegistry.h.
BAR allocation/migration/update API
The Update* flavor of methods handle both allocation of a new BAR and reallocation-migration based on the existing range, updated/added specs, removed specs and usage hint. This allows client code to be less verbose when a range's signature (specs) can change.
If curRange
is invalid, this is equivalent to calling Allocate*. Otherwise, checks if curRange
needs to be migrated to a new range (based on updatedOrAddedSpecs
and removedSpecs
and usageHint
). If migration is necessary, allocate a new range and register necessary migration computations and return the new range. Otherwise, just return the same range.