Comment enregistrer une fenêtre d'application Qt5 avec une surcharge de processeur minimale ou nulle sous Windows ou Linux?

1

J'écris une application de rendu de volume en temps réel qui fonctionne uniquement sur le processeur. C'est assez rapide, mais néanmoins, plus la puissance du processeur est importante, meilleure est l'interactivité. En gros, je le conçois pour utiliser les ressources du processeur au maximum. Je dois enregistrer une démonstration de l'application. Auparavant, j’utilisais OBS studio sous Linux pour enregistrer une procédure pas à pas pour un jeu RTS, et je me souviens qu’il y avait définitivement une surcharge de temps processeur. Ceci est inacceptable pour ma démo de rendu de volume.

Cela dit, la question est:

Est-il possible d'enregistrer une application purement Qt5 ne produisant pas de sortie dans DirectX ou OpenGL à l'aide d'un GPU NVIDIA GTX 1060 6 Gb, en utilisant ledit GPU comme encodeur avec une surcharge de 0 CPU? Dois-je modifier le code source pour exploiter une bibliothèque qui me permettrait de copier le framebuffer et d’encoder à la volée à l’aide du GPU uniquement?

Modifier:

Pour le rendre plus clair. En premier lieu, je suis intéressé par une application dans laquelle je peux lancer un enregistrement de la fenêtre de mon programme, et non dans une bibliothèque dans laquelle je peux utiliser mon propre projet en tant que programmeur (c'est-à-dire via son API). Mais s’il existe un moyen de résoudre le problème de cette manière, tout ira bien.

iksemyonov
la source
Je crois que cela devrait être sur stackoverflow car c'est essentiellement une question de programmation.
djsmiley2k
@ djsmiley2k Je m'intéresse principalement aux applications d'enregistrement autonomes qui évitent les temps système, comme celles basées sur NVIDIA ShadowPlay.
iksemyonov
Ok j'ai retiré mon drapeau après les modifications.
djsmiley2k
@ djsmiley2k TY pour la relecture!
iksemyonov
À moins que tout l'enregistrement ne tienne dans la mémoire, je ne vois pas comment vous pouvez éviter complètement le temps système nécessaire au processeur pour accéder au système de fichiers. Il y a des accélérations accélérées de la mémoire tampon de trame vers la mémoire principale qui n'utilisent pas le processeur (bien qu'elles utilisent le bus), mais le processeur doit effectuer la sauvegarde. Et je ne connais aucune application toute faite qui fasse cela.
dirkt