|
| Vector< TextureSlot > & | TextureSlots (bool is3D) |
| |
| Vector< TextureSlot > const & | TextureSlots (bool is3D) const |
| |
| BindlessPool & | TexturePool (bool is3D) |
| |
| void | FreeTextureSlot (bool is3D, uint32_t slot) |
| |
| BindlessPool & | SelectTexturePool (RHITextureDimension viewDimension) |
| |
| BindlessPool const & | SelectTexturePool (RHITextureDimension viewDimension) const |
| |
| uint32_t | AcquireMeshBLASSlot () |
| |
| uint32_t | AcquireCurveBLASSlot () |
| |
| GeometryResidency * | ResolveGeometry (GeometryHandle handle) |
| |
| GeometryResidency const * | ResolveGeometry (GeometryHandle handle) const |
| |
| uint32_t | AcquireGeometrySlot () |
| |
| void | FreeGeometry (uint32_t slot) |
| |
| void | BuildBLAS (ImmediateContext *ctx, Span< const GSMesh > meshes, Span< uint32_t > outBLASIndices, ImmediateSubmitDesc const &firstSubmitDesc={}) |
| |
| void | BuildCurveBLAS (ImmediateContext *ctx, Span< const GSCurveSet > curves, Span< uint32_t > outBLASIndices, ImmediateSubmitDesc const &firstSubmitDesc={}) |
| |
| bool | DrainUploadBatch () |
| | Drains all currently-queued uploads into one batch and processes it (returns false if nothing was queued).
|
| |
| void | UploadWorker () |
| | Persistent worker entry point: drains batches, sleeping while the queues are empty.
|
| |
| template<typename T > |
| void | EnqueueUpload (MPMCQueue< T > &queue, T &&item) |
| | Enqueues one item, bumping the outstanding count and waking the worker.
|
| |
| Result | ReserveMesh (FSerializedMesh const &src, GSMesh &outHeader, uint32_t &outOffset) |
| | Reserves final resident memory and computes the shader header (no staging yet).
|
| |
| Result | ReserveCurve (FSerializedCurve const &src, GSCurveSet &outHeader, uint32_t &outOffset) |
| |
| size_t | StageMesh (ImmediateUpload *ctx, FSerializedMesh const &src, GSMesh const &header, uint32_t offset, Vector< GPUSceneBlobWrite > &outWrites) |
| | Stages a reserved resource into the upload context: writes the shader header inline and emits blob-decode jobs for its payloads.
|
| |
| size_t | StageCurve (ImmediateUpload *ctx, FSerializedCurve const &src, GSCurveSet const &header, uint32_t offset, Vector< GPUSceneBlobWrite > &outWrites) |
| |
| size_t | StageTextureSubresource (ImmediateUpload *ctx, FSerializedTexture const &source, RHITexture *texture, uint32_t layer, uint32_t mip, Vector< GPUSceneBlobWrite > &outWrites) |
| | Stages one texture subresource (emits a blob-decode job); 0 when the lane is full.
|
| |
| void | ProcessUploads (Vector< PendingGeometryUpload > &geometry, Vector< PendingTextureUpload > &textures, Vector< PendingBufferUpload > &buffers) |
| | Drains the pending upload queues: best-fit staging packing, threaded blob decode, transfer submission, BLAS build, residency patching, Ready marking.
|
| |
| void | FlushDirectGeometryUpload () |
| |
| Pair< GSInstance *, uint32_t > | AllocateInstance (uint32_t count) |
| |
| Pair< GSMaterial *, uint32_t > | AllocateMaterial (uint32_t count) |
| |
| Pair< GSLight *, uint32_t > | AllocateLight (uint32_t count) |
| |
| Pair< GSAlias *, uint32_t > | AllocateLightAliasTable (uint32_t count) |
| |
| uint32_t | CountLiveInstances () const |
| |
| uint32_t | CountTLASInstances () const |
| |
| void | EnsureTLASCapacity (uint32_t totalInstances) |
| |
| | GPUSceneImpl (GPUScene &owner, RHIDevice *device, Allocator *allocator, GPUSceneDesc const &desc, AllocatorStack *frameScratch) |
| |
| | ~GPUSceneImpl () |
| |
| Result | Upload (FBlobDeserializer *blobs, FSerializedMesh const &source, GeometryHandle &outHandle) |
| |
| Result | Upload (FBlobDeserializer *blobs, FSerializedCurve const &source, GeometryHandle &outHandle) |
| |
| Result | UploadDynamic (FBlobDeserializer *blobs, FSerializedMesh const &source, GeometryHandle &outHandle) |
| |
| Result | Upload (FBlobDeserializer *blobs, FSerializedTexture const &source, TextureHandle &outTexture, const char *debugName=nullptr, bool pinned=false) |
| |
| Result | Upload (FTexture const &source, TextureHandle &outTexture, const char *debugName=nullptr, bool pinned=false) |
| |
| Result | Upload (RHIBuffer *dst, Span< const unsigned char > data, uint32_t dstOffset=0) |
| |
| Result | Query (GeometryHandle handle) const |
| |
| Result | Query (TextureHandle texture) const |
| |
| void | Join () |
| |
| Result | Poll () |
| |
| Result | UploadViewLUTs (FTexture const &sdr, FTexture const &hdr) |
| |
| Result | UploadEnvMap (FTexture const &source) |
| |
| GPUSceneTables | BeginScene (uint32_t instanceCount, uint32_t materialCount, uint32_t lightCount) |
| |
| UpdateResult | EndScene (GPUSceneTables &tables) |
| |
| void | DbgGetMemoryStatistics (Vector< MemoryStat > &outStats) const |
| |
| String | DbgGetBufferStatistics () const |
| |
| TLASBuildResult | BuildTLAS (RHICommandList *cmd, bool update) |
| |
| void | Collect () |
| |
| void | Reset () |
| |
| uint32_t | DynamicRegionBase (GeometryResidency const &g, uint32_t slot) const |
| |
| void | WriteDynamicHeader (GeometryResidency &g, uint32_t slot) |
| |
| void | AllocateDynamicBLAS (GeometryResidency &g) |
| |
| bool | HasDynamicGeometry () const |
| |
| void | BeginDynamicGeometryUpdate () |
| |
| Span< std::byte > | UpdateDynamicGeometry (GeometryHandle handle) |
| |
| void | EndDynamicGeometryUpdate () |
| |
| void | BuildBLAS (RHICommandList *cmd) |
| |
All implementation state and machinery owned by GPUScene.
- Note
- Lives entirely in GPUScene.cpp via GPUScene::mImpl. The committed-snapshot tables, the LUT/env bindless indices and the plain primitive/TLAS/sobol/default buffer handles remain direct members of the facade (so the hot read getters stay inline); this struct reaches them through owner.
Drains the pending upload queues: best-fit staging packing, threaded blob decode, transfer submission, BLAS build, residency patching, Ready marking.
Drains one batch of queued uploads: best-fit staging packing, threaded blob decode, transfer submission, BLAS build, residency patching, Ready marking.