|
MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
|
Stateful GPU dispatch engine for VisionSequence execution. More...
#include <VisionGpuDispatch.hpp>
Collaboration diagram for MayaFlux::Yantra::VisionGpuExecutor:Public Member Functions | |
| VisionGpuExecutor & | operator= (const VisionGpuExecutor &)=delete |
| VisionGpuExecutor & | operator= (VisionGpuExecutor &&)=delete |
| Kinesis::Vision::VisionResult | run (const Kinesis::Vision::VisionSequence &sequence, const std::shared_ptr< Core::VKImage > &image, uint32_t w, uint32_t h) |
| Execute a VisionSequence on the GPU using this instance's own lazily-constructed context set. | |
| Kinesis::Vision::VisionResult | run (VisionGpuContexts &contexts, const Kinesis::Vision::VisionSequence &sequence, const std::shared_ptr< Core::VKImage > &image, uint32_t w, uint32_t h) |
| Execute a VisionSequence on the GPU through an explicit context set. | |
| VisionGpuExecutor ()=default | |
| VisionGpuExecutor (const VisionGpuExecutor &)=delete | |
| VisionGpuExecutor (VisionGpuExecutor &&)=delete | |
| ~VisionGpuExecutor ()=default | |
Static Public Member Functions | |
| static GpuComputeConfig | config (Kinesis::Vision::VisionOp op, const Kinesis::Vision::VisionParams ¶ms) |
| GpuComputeConfig for a given VisionOp and its parameters. | |
Private Attributes | |
| std::unique_ptr< VisionGpuContexts > | m_contexts |
Stateful GPU dispatch engine for VisionSequence execution.
Owns a lazily-constructed VisionGpuContexts (m_contexts) plus any op-specific persistent GPU state that doesn't belong on a shared context (e.g. ConnectedComponents' ping-pong output image). Mirrors VisionExecutor's ownership model on the CPU side: construct one instance per independent pipeline, hold it, call run() every frame.
Immovable: TextureExecutionContext owns GPU resource handles with no copy or move constructor, so VisionGpuContexts and therefore VisionGpuExecutor cannot be copied or moved either. Construct once, hold by reference, pointer, or shared_ptr, reuse indefinitely.
Not safe to call run() concurrently from multiple threads on the same instance. Independent pipelines running concurrently should each own a separate VisionGpuExecutor instance.
Definition at line 89 of file VisionGpuDispatch.hpp.