Loading...
Searching...
No Matches
ComputeRingDispatcher.hpp
Go to the documentation of this file.
Backend-uniform N-slot exportable GPU buffer ring for vendor P2P.
Backend-uniform fence between QRhi command-buffer + CUDA stream.
Definition ComputeRingDispatcher.hpp:69
void encode(QRhiCommandBuffer &cb, std::uint64_t fenceValue)
Definition ComputeRingDispatcher.hpp:114
void advance() noexcept
Rotate the ring. Call after the peer has accepted finishedSlot().
Definition ComputeRingDispatcher.hpp:143
GpuRingBufferSlot & finishedSlot() noexcept
Definition ComputeRingDispatcher.hpp:137
bool waitOnCuda(std::uint64_t fenceValue)
Definition ComputeRingDispatcher.hpp:128
Vendor-neutral helper that allocates + manages the slot ring.
Definition ImportedGpuBufferRing.hpp:103
std::size_t advance() noexcept
Rotate the ring; returns the new write index.
Definition ImportedGpuBufferRing.cpp:82
Definition ComputeRingDispatcher.hpp:51
QString colorConversion
Definition ComputeRingDispatcher.hpp:63
InteropFence * fence
Optional. nullptr means no cross-API fence (D3D11/GL no-op style).
Definition ComputeRingDispatcher.hpp:65
std::function< std::unique_ptr< score::gfx::ComputeEncoder >()> encoderFactory
Definition ComputeRingDispatcher.hpp:60
One slot of the ring. Lifetime owned by ImportedGpuBufferRing.
Definition ImportedGpuBufferRing.hpp:50
QRhiBuffer * qrhiBuffer
QRhi-owned UAV / Storage buffer.
Definition ImportedGpuBufferRing.hpp:51
Backend-uniform fence interface. Per-vendor adapters hold one instance, signal it after the per-frame...
Definition InteropFence.hpp:53
virtual void signalAfterEncode(QRhiCommandBuffer &cb, std::uint64_t value)=0
virtual bool waitOnCuda(std::uint64_t value)=0