mpv icon indicating copy to clipboard operation
mpv copied to clipboard

gpu-context should auto switch when switch hwdec

Open Andarwinux opened this issue 1 year ago • 6 comments

Before requesting a new feature make sure it hasn't been requested yet. https://github.com/mpv-player/mpv/labels/meta%3Afeature-request

Expected behavior of the wanted feature

Example:

gpu-context=d3d11,winvk
hwdec=d3d11va

Then switch hwdec to nvdec at runtime (set hwdec nvdec) , then gpu-context should auto switch to winvk to allow hwdec=nvdec to work without error.

Andarwinux avatar Apr 18 '24 15:04 Andarwinux

@na-na-hi What do you think?

kasper93 avatar Apr 18 '24 15:04 kasper93

hwdec=nvdec requires gpu-context=winvk now? At least on Windows. Is this by design?

Hrxn avatar Apr 18 '24 15:04 Hrxn

There are interops for egl and vulkan, so it doesn't have to be winvk but that is the better choice. It is possible to write a d3d11 interop but someone has to do the work

philipl avatar Apr 18 '24 15:04 philipl

I see.. So, not some recent change mandated by newer versions of NVIDIA's Windows drivers?

Hrxn avatar Apr 18 '24 15:04 Hrxn

No. Egl should still work fine but I haven't touched windows for ages.

philipl avatar Apr 18 '24 15:04 philipl

Note that this should also be applied when --hwdec-codecs change when --hwdec=auto is set.

To avoid unnecessary vo reconfigs, the switching meshanism needs to know which hwdec methods are compatible with which GPU contexts. AFAIK mpv doesn't maintain such a list.

I think such functionality can be done with a script. It only needs to do the following:

  • Observe --hwdec and --hwdec-codecs for changes
  • Compute a list of GPU contexts that is compatible with the union of all acceptable hwdecs
  • Compare the context list with the current list. If different, set --gpu-context to the new list. A reconfig should trigger and try to use the hwdec.

hwdec=nvdec requires gpu-context=winvk now? At least on Windows. Is this by design?

NVDEC works with OpenGL on Windows.

na-na-hi avatar Apr 18 '24 15:04 na-na-hi