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. | |