HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
resourceRegistry.h File Reference
#include "pxr/pxr.h"
#include "pxr/base/vt/dictionary.h"
#include "pxr/imaging/hdSt/api.h"
#include "pxr/imaging/hdSt/bufferArrayRegistry.h"
#include "pxr/imaging/hdSt/enums.h"
#include "pxr/imaging/hgi/hgi.h"
#include "pxr/imaging/hd/bufferArrayRange.h"
#include "pxr/imaging/hd/bufferSource.h"
#include "pxr/imaging/hd/bufferSpec.h"
#include "pxr/imaging/hd/instanceRegistry.h"
#include "pxr/imaging/hd/resourceRegistry.h"
#include <tbb/concurrent_vector.h>
#include <atomic>
#include <map>
#include <memory>
+ Include dependency graph for resourceRegistry.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  HdStResourceRegistry
 

Typedefs

using HdStComputationSharedPtr = std::shared_ptr< class HdStComputation >
 
using HdStDispatchBufferSharedPtr = std::shared_ptr< class HdStDispatchBuffer >
 
using HdStGLSLProgramSharedPtr = std::shared_ptr< class HdStGLSLProgram >
 
using HioGlslfxSharedPtr = std::shared_ptr< class HioGlslfx >
 
using HdSt_BasisCurvesTopologySharedPtr = std::shared_ptr< class HdSt_BasisCurvesTopology >
 
using HdStShaderCodePtr = std::weak_ptr< class HdStShaderCode >
 
using HdSt_GeometricShaderSharedPtr = std::shared_ptr< class HdSt_GeometricShader >
 
using HdStRenderPassShaderSharedPtr = std::shared_ptr< class HdStRenderPassShader >
 
using HdStTextureHandleSharedPtr = std::shared_ptr< class HdStTextureHandle >
 
using HdStTextureObjectSharedPtr = std::shared_ptr< class HdStTextureObject >
 
using HdStBufferResourceSharedPtr = std::shared_ptr< class HdStBufferResource >
 
using HdStResourceRegistrySharedPtr = std::shared_ptr< class HdStResourceRegistry >
 
using HdSt_VertexAdjacencyBuilderSharedPtr = std::shared_ptr< class HdSt_VertexAdjacencyBuilder >
 
using HdSt_MeshTopologySharedPtr = std::shared_ptr< class HdSt_MeshTopology >
 
using HgiResourceBindingsSharedPtr = std::shared_ptr< HgiResourceBindingsHandle >
 
using HgiGraphicsPipelineSharedPtr = std::shared_ptr< HgiGraphicsPipelineHandle >
 
using HgiComputePipelineSharedPtr = std::shared_ptr< HgiComputePipelineHandle >
 
using HdStComputationComputeQueuePairVector = std::vector< std::pair< HdStComputationSharedPtr, HdStComputeQueue >>
 

Enumerations

enum  HdStComputeQueue {
  HdStComputeQueueZero =0, HdStComputeQueueOne, HdStComputeQueueTwo, HdStComputeQueueThree,
  HdStComputeQueueCount
}
 

Typedef Documentation

using HdSt_BasisCurvesTopologySharedPtr = std::shared_ptr<class HdSt_BasisCurvesTopology>

Definition at line 46 of file resourceRegistry.h.

Definition at line 51 of file resourceRegistry.h.

using HdSt_MeshTopologySharedPtr = std::shared_ptr<class HdSt_MeshTopology>

Definition at line 66 of file resourceRegistry.h.

using HdSt_VertexAdjacencyBuilderSharedPtr = std::shared_ptr<class HdSt_VertexAdjacencyBuilder>

Definition at line 64 of file resourceRegistry.h.

Definition at line 60 of file resourceRegistry.h.

Definition at line 99 of file resourceRegistry.h.

Definition at line 40 of file resourceRegistry.h.

Definition at line 41 of file resourceRegistry.h.

Definition at line 42 of file resourceRegistry.h.

Definition at line 53 of file resourceRegistry.h.

Definition at line 62 of file resourceRegistry.h.

using HdStShaderCodePtr = std::weak_ptr<class HdStShaderCode>

Definition at line 49 of file resourceRegistry.h.

Definition at line 56 of file resourceRegistry.h.

Definition at line 58 of file resourceRegistry.h.

Definition at line 72 of file resourceRegistry.h.

Definition at line 70 of file resourceRegistry.h.

Definition at line 68 of file resourceRegistry.h.

using HioGlslfxSharedPtr = std::shared_ptr<class HioGlslfx>

Definition at line 43 of file resourceRegistry.h.

Enumeration Type Documentation

Determines the 'compute queue' a computation should be added into.

We only perform synchronization between queues, not within one queue. In OpenGL terms that means we insert memory barriers between computations of two queues, but not between two computations in the same queue.

A prim determines the role for each queue based on its local knowledge of compute dependencies. Eg. HdStMesh knows computing normals should wait until the primvar refinement computation has fnished. It can assign one queue to primvar refinement and a following queue for normal computations.

Enumerator
HdStComputeQueueZero 
HdStComputeQueueOne 
HdStComputeQueueTwo 
HdStComputeQueueThree 
HdStComputeQueueCount 

Definition at line 91 of file resourceRegistry.h.