[vlc-devel] [PATCH 04/31] display: don't store the dummy context in the display anymore
Steve Lhomme
robux4 at ycbcr.xyz
Tue Sep 24 13:55:04 CEST 2019
On 2019-09-24 11:41, Steve Lhomme wrote:
> On 2019-09-23 19:11, Rémi Denis-Courmont wrote:
>> Le maanantaina 23. syyskuuta 2019, 18.01.09 EEST Steve Lhomme a écrit :
>>> Use the one from the vout thread if it exists.
>>>
>>> Later the video context will come from the decoder (if any).
>>
>> I still don't get why the VD should care/know about the decoder device
>> at all.
>> If even VD knows about the decoder device, then what's the point of the
>> distinct video context?
>
> The hint has to work both ways. If a VAAPI decoder uses a VADisplay and
> the VD uses another one it may not work at all (not sure if the same
> value would be used if the default display is used in both cases).
>
> With D3D it's the same thing, with external rendering we want the VD to
> use the D3D device provided by the host (otherwise it just cannot work).
> That means the decoder should also use this device. And it knows about
> this device/hint through the "decoder device". I agree that the VD may
> read that external D3D device on itself without using the "decoder
> device" at all. Given the "decoder device" may not be created at all
> (it's created only on demand which won't happen for AV1 playback for
> example) maybe I should not rely on it at all and get the host D3D
> device by other means.
>
> (there are also possibilities to use a different D3D device for decoding
> and rendering which I have local support for, but that's besides the point)
>
> So IMO it all comes down to VAAPI and whether the VADisplay value must
> be created once and used in the decoder and the VD.
I forgot an important case. When using a GPU decoder, a CPU filter, then
a GPU filter and then the display. If we don't store the "decoder
device" (in the filter (chain) owner) the CPU>GPU filter will need to
create a new "decoder device" when we could use a cached one, matching
the one used to initialize the VD (via the video context). We will
likely need to recreate a VD when we shouldn't have to.
> I think in all cases the VADisplay created for the decoder will be
> pushed in the video context when creating the display. So in all cases
> it should match on both sides.
>
> I'll modify my patch (and working branches) accordingly.
> _______________________________________________
> 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