This fixes/improves de-interlacing method weave when upscaling. Both fields are rendered into a fbo of original size first, then the fbo gets rendered and upscaled.
this is follow-up from our discussion here: FernetMenta@975d03b
@elupus ping, do you have time to review this?
Could you explain a bit more in detail what it improves?
The first commit we can be merged as soon as merge window open. It could be improved I suppose by create a struct for holding the fbo properties, and having RenderFromFbo taking that as a parameter. But it is better than current code anyway.
There's two things it improves when doing a weave:
It renders both fields to the fbo at the same size as source. Then it renders the fbo (holding both fields) and does upscaling.
It first collects both fields into the fbo, then renders the fbo only once.
How does that work. You can't scale a weaved image.. Each field need to be scaled separate.
Ok, then we need to distinguish between weaving/scaling of interlaced fields and fields of a progressive frame. The latter needs scaling after the fields have been combined.
Yes, if we get separate fields for a progressive source we need to do that yes. It's only vdpau interrop that does so currently right?
Yes. Then I keep the first and 3rd commit in this PR and move the second (progressive weave) to #870?
For VDPAU interop I would write a shader that directly weaves the fields, most of the slower gpu's can't handle going through an fbo first at 1080p.
It won't go through the fbo it no upscaling is needed. Nevertheless I have written a prototype for this kind of shader (see link above), but then dropped this idea. If you think using a shader is better I have to put the pieces together.
Ah right, in that case it would be faster to render to an fbo first.
linuxrenderer: split RenderMultiPass into RenderToFBO and RenderFromFBO
linuxrenderer: proper cleanup
I dropped the change on weave and created a struct for the fbo related parameters.
Can we please include at least the second commit: "proper cleanup"?
Yesterday there was somebody on IRC, that saw the scene from the played video before in his "black screensaver" - cause of the Renderer is not cleaned up properly ...
Afaik today (10th) the merge window is ending, right?