Add an API to copy OpenGL textures into VA surfaces
- Dominant language
- C
- Stars
- 784
- Forks
- 314
- PR merge metrics
- No merged PRs in 30d
Description
There's an `vaCopySurfaceGLX()` function that copies frame data from VA surface into an OpenGL texture without (hopefully) invoking a CPU-land memory transfer.
What I need is the opposite operation: copy image data from OpenGL texture into VA surface for it to be encoded.
How hard would it be to implement this?
How hard would it be to familiarize oneself with all the domain-specific knowledge necessary?
Context:
I'm evaluating whether it would be a fun hobby project to make OBS on Linux do all video processing completely within GPU land, and have only the final encoded frames leave the GPU memory.
Currently OBS needs to transfer fullscreen-size images back and forth between CPU and GPU several times per frame for non-trivial scenes, which has a severe performance penalty.
Contributor guide
Assessment
This issue has not been assessed yet.