[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#930232: vlc: No video output in any video



Hi,

> On 2019-06-08 23:37:18, Ralf Jung wrote:
>>> Control: tags -1 moreinfo
>>> Control: severity -1 important
>>> Control: found -1 3.0.6-1
>>>
>>> On 2019-06-08 23:20:15, Ralf Jung wrote:
>>>> Package: vlc
>>>> Version: 3.0.7-1
>>>> Severity: grave
>>>> Justification: renders package unusable
>>>>
>>>> Dear Maintainer,
>>>>
>>>> No matter which video file I try to open with VLC, VLC fails to display any
>>>> image.  All I get is a flickering VLC icon.  I will attach a "-vv" log for one
>>>> of the many files that I tried.  The same files all work fine with mpv.
>>>
>>> What type of GPU do you use?
>>
>> (Sorry, I thought the debug log would have all that stuff.)
>> This is a dual-GPU system, with an HD Graphics P530 and an NVidia Quadro M2000M.
>>  The Intel card is the master, the NVidia card is used as an output slave (i.e.,
>> my HDMI port is actually connected to the NVidia card).
> 
> I didn't find anything in the log. Looks like vlc or the underlying
> libraries failed to detect the hardware. Is this an NVIDIA Optimus-type
> setup that requires bumblebee to work properly? The logs suggest that
> some OpenGL related functions failed.

Bumblebee is for using the NVidia card as an accelerator while rendering the
image on a screen controlled by the Intel card *without* support from either of
the two involved drivers.  I am not using that.  Also this doesn't even apply
because the NVidia card is not involved as an accelerator here, or at least
should not be.

Instead what happens is that DMA-BUF "output slave" mode is used to use the
NVidia card as an *output* together with the internal laptop screen that is
accessed directly by the Intel card.  All the rendering is done by the Intel card.

There are two ways in which a "master" GPU can use the "service" of another one:

* It uses the other card to render stuff, then copies the result back to its own
frame buffer for some output it controls.  This is the "bumblebee" situation.
Bumblebee makes this work with the proprietary NVidia drivers without them
having dedicated support for this situation.  When using the open-source noveau
driver, there is no need for bumblebee: the driver can natively just do this
using DMA-BUF, and I can set "DRI_PRIME=1" to activate this mode.  I don't do
that though, the nouveau drivers are so slow that it's not actually noticeably
faster than just using the Intel drivers for rendering.
* Another situation is when the laptop has some of its display connectors
connected to one GPU and some to the other GPU, but you still want a shared
desktop across all of them. Some modern hardware unfortunately does that. My
internal laptop screen is connected to the Intel card but my HDMI port is
connected to the NVidia card. I use the Intel card as the "master" so that the
NVidia card can turn off when no screen is connected. But when a screen is
connected, the image rendered by the Intel card somehow needs to get to the
frame buffer on the NVidia card. This is an "output slave" in DMA-BUF
terminology, and bumblebee doesn't help here.  The NVidia proprietary drivers
don't support this, which is why I use nouveau.

I can try to explain more about this setup if you want, though I am far from an
expert myself -- just enough to get my system to run.^^

The weirdest thing is that I just tried VLC after disconnecting the HDMI screen,
and then it worked fine with the default video output mode.  And then I tried it
again on the HDMI screen and it still works.  I will have to do a reboot to see
if this sticks.  I have not installed any updates since yesterday when I
installed VLC 3.0.7 from testing and the bug was still present.

>>> Do you have the corresponding hardware
>>> decoding driver installed?
>> How can I find that out?  I am using the Mesa drivers for both cards, as far as
>> OpenGL goes.  (The proprietary NVidia drivers don't support being an output slave.)
> 
> For the Intel card that'd be i965-va-driver (or intel-media-va-driver
> and setting LIBVA_DRIVER_NAME to iHD). You'll probably also need
> non-free firmware for that. For NVIDIA you'd need the non-free drivers
> together nvidia-vdpau-driver. As far as I am aware, the hardware
> decoding experience with nouveau is suboptimal.

i965-va-driver is installed. (Though IMO it would be a bug if VLC broke when a
non-depended packet is not installed.)
As mentioned above I cannot use the non-free NVidida drivers as they don't
support output slave mode.

Kind regards,
Ralf


Reply to: