Loading...
Searching...
No Matches
ComputeRingDispatcher.hpp File Reference

Bundles a ImportedGpuBufferRing + per-slot ComputeEncoder + InteropFence into the per-frame "encode + signal" loop every vendor GPU-direct path runs. More...

Detailed Description

Bundles a ImportedGpuBufferRing + per-slot ComputeEncoder + InteropFence into the per-frame "encode + signal" loop every vendor GPU-direct path runs.

Runs the slot.encoder->exec(*rhi, cb, res) + ring rotation shared by the per-backend RDMA output paths, plus the fence signal the Vulkan and D3D12 paths need.

Header-only — there's no per-backend logic here, just orchestration.

Usage:

ComputeRingDispatcher disp;
if(!disp.init({rhi, state, ring, srcTexture, w, h,
[]{ return makeMyEncoder(...); },
colorShader, fence.get()}))
return false;
// Per frame:
disp.encode(cb, ++fenceValue);
// ... offscreen frame ended ...
if(disp.waitOnCuda(fenceValue))
vendor.submit(disp.finishedSlot().gpuDevicePtr);
disp.advance();

Go to the source code of this file.

Classes

struct  score::gfx::interop::ComputeRingDispatcherConfig
 
class  score::gfx::interop::ComputeRingDispatcher
 

Namespaces

namespace  score
 Base toolkit upon which the software is built.
 
namespace  score::gfx
 Graphics rendering pipeline for ossia score.