Batch Rendering

12 views
Skip to first unread message

Aaron Boxer

unread,
Sep 2, 2020, 2:26:47 PM9/2/20
to ofx-dis...@googlegroups.com
Hello!
I have a question about batch rendering in a plugin. Is there an API or interface to send multiple frames to a plugin per single render ? As, GPUs get the best throughput with larger amounts of data.
Thanks,
Aaron

Adams, Dennis

unread,
Sep 2, 2020, 3:05:18 PM9/2/20
to ofx-dis...@googlegroups.com

Not that I’m aware of.

 

However, an HD frame of video already creates many in-flight (as well as queued) workgroups so I can’t imagine batching would help GPU performance.

 

///d@

--
You received this message because you are subscribed to the Google Groups "ofx-discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ofx-discussio...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ofx-discussion/CAK8GPyC6Oyha1tP3D6Of1ET4_FM0LA_oB%2Brk-APrpsgPPJK%2BPg%40mail.gmail.com.

Aaron Boxer

unread,
Sep 3, 2020, 10:46:30 PM9/3/20
to ofx-dis...@googlegroups.com
Thanks. That's too bad; these days, you are definitely going to hobble a mid to high range GPU if you only feed it one frame at a time, even at 4K.


Phil Barrett

unread,
Sep 4, 2020, 6:24:29 AM9/4/20
to ofx-dis...@googlegroups.com

Hi Aaron

Are you talking about a situation where your plugin takes images from the host on the CPU and does its own transfer to the GPU and back?

That's clearly going to be very bad for pipelining and performance. You should look to be using a GPU suite (and a host that supports it).

Phil
-- 
Phil Barrett
FilmLight

Aaron Boxer

unread,
Sep 4, 2020, 11:28:44 AM9/4/20
to ofx-dis...@googlegroups.com
On Fri, Sep 4, 2020 at 6:24 AM 'Phil Barrett' via ofx-discussion <ofx-dis...@googlegroups.com> wrote:

Hi Aaron

Are you talking about a situation where your plugin takes images from the host on the CPU and does its own transfer to the GPU and back?

That's clearly going to be very bad for pipelining and performance. You should look to be using a GPU suite (and a host that supports it).


Thanks, Phil. How can I learn more about "GPU suite" ? Yes, ideally, N frame transfers from host to device would be scheduled, with an event per frame to notify
when the transfer was complete, and then the kernels would execute triggered by each event.  The example host in the repo doesn't seem to support this
workflow.

 

Phil
-- 
Phil Barrett
FilmLight

On 2020-09-04 03:46, Aaron Boxer wrote:

Thanks. That's too bad; these days, you are definitely going to hobble a mid to high range GPU if you only feed it one frame at a time, even at 4K.
 
 
 

--
You received this message because you are subscribed to the Google Groups "ofx-discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ofx-discussio...@googlegroups.com.

PierreJasmin_REVisionEffects

unread,
Sep 4, 2020, 1:42:24 PM9/4/20
to ofx-discussion
The closest thing in openFX is RenderInOrder 
https://openfx.readthedocs.io/en/master/Reference/ofxPropertiesReference.html#c.kOfxImageEffectInstancePropSequentialRender
Not clear what host in what context supports that, but you could fetch on first frame tons of input frames, build up a huge texture and rect copy tiles to output as requested
Pierre

Phil Barrett

unread,
Sep 10, 2020, 5:02:07 AM9/10/20
to ofx-dis...@googlegroups.com
On 2020-09-04 16:28, Aaron Boxer wrote:

>> You should look to be using a GPU suite (and a host that supports it).
>
> Thanks, Phil. How can I learn more about "GPU suite" ?

The only official suite is the OpenGL Render Suite; some hosts have
support for other GPU APIs (e.g. OpenCL, CUDA, Metal) in a similar
manner but their APIs aren't standardised yet.

See http://openeffects.org/documentation/api_doc/ofxOpenGLRender.html

> Yes, ideally, N frame transfers from host to device would be scheduled,
> with an event per frame to notify when the transfer was complete

You don't have that control, but if the host wants to do that it's free
to do so. All the OpenGL Suite guarantees is that the host will get all
the images onto the GPU and your plugin will be called in a GL context
where it can request its input texture(s) and output texture.

Aaron Boxer

unread,
Nov 12, 2020, 12:37:14 PM11/12/20
to ofx-dis...@googlegroups.com
Two months later, thank you very much for this info !  :)

--
You received this message because you are subscribed to the Google Groups "ofx-discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ofx-discussio...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages