[vlc-devel] [PATCH 2/2] picture_pool: fix Reserve() not locking/unlocking pictures

Thomas Guillem thomas at gllm.fr
Sat Dec 31 15:52:24 CET 2016



On Sat, Dec 31, 2016, at 11:14, Rémi Denis-Courmont wrote:
> Le vendredi 30 décembre 2016, 23:13:21 Thomas Guillem a écrit :
> > > More importantly, I cannot think of any use case for using the lock and
> > > unlock
> > > callbacks, that would be both practically useful for the display plugin,
> > > and
> > > safe/valid/well-defined, so I don't really see the point in these extra
> > > intricacies.
> > 
> > My work in progress OpenGL PBO branch
> > https://github.com/tguillem/vlc/commit/bf7fa65ede8fb10839f70d61f707965ee43b6
> > 049 will need this commit.
> 
> From my PoV, any vout that relies on lock/unlock is broken because the 
> callbacks haven't really done anything useful ever since the vout rework. 
> AFAICT, the original (unsound) semantics of those callbacks were lost by
> then.
> 
> And I still fail to see an explanation of what they are supposed to do,
> how 
> that's actually going to work, and why it's actually necessary.
> 
> > PBO for Pixel Buffer Object.  With that, we can do direct rendering with
> > OpenGL x / OpenGLES 3 display modules. For now, perfs are worse with
> > OpenGLES 3 but 30% better (for 4K) with OpenGL (still WIP).
> 
> I fail to see why.
> 
> * If you need to know when the buffer is read-only and ready for upload,
> cache 
> invalidation, etc., you have to use the ->prepare callback.
> * If you need to hold onto the buffer after display, you can use
> picture_Hold() 
> and picture_Release() functions to defer the buffer returning to the
> pool.

Ohh I didn't though about that solution. I'll try that, see if it works
in my case.


> * If you need to unmap the buffer before rendering, you simply cannot
> perform 
> direct rendering (since software decoders and filters might need the
> buffer as 
> reference frame during and after display).
> * Likewise if you do not have enough buffers (lest a deadlock potentially 
> occur). though the core should work around it automagically by turning
> direct 
> rendering off.
> 
> And with that noted, I don't really see what (else) ->lock and ->unlock
> could 
> do that would be useful to OpenGL, or really any video output interface.
> 
> -- 
> Rémi Denis-Courmont
> http://www.remlab.net/
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list