1
mirror of https://github.com/mpv-player/mpv synced 2024-10-22 08:51:57 +02:00
mpv/DOCS
Niklas Haas bded247fb5 vo_gpu: vulkan: support split command pools
Instead of using a single primary queue, we generate multiple
vk_cmdpools and pick the right one dynamically based on the intent.
This has a number of immediate benefits:

1. We can use async texture uploads
2. We can use the DMA engine for buffer updates
3. We can benefit from async compute on AMD GPUs

Unfortunately, the major downside is that due to the lack of QF
ownership tracking, we need to use CONCURRENT sharing for all resources
(buffers *and* images!). In theory, we could try figuring out a way to
get rid of the concurrent sharing for buffers (which is only needed for
compute shader UBOs), but even so, the concurrent sharing mode doesn't
really seem to have a significant impact over here (nvidia). It's
possible that other platforms may disagree.

Our deadlock-avoidance strategy is stupidly simple: Just flush the
command every time we need to switch queues, and make sure all
submission and callbacks happen in FIFO order. This required lifting the
cmds_pending and cmds_queued out from vk_cmdpool to mpvk_ctx, and some
functions died/got moved as a result, but that's a relatively minor
change.

On my hardware this is a fairly significant performance boost, mainly
due to async transfers. (Nvidia doesn't expose separate compute queues
anyway). On AMD, this should be a performance boost as well due to async
compute.
2017-12-25 00:47:53 +01:00
..
man vo_gpu: vulkan: support split command pools 2017-12-25 00:47:53 +01:00
client-api-changes.rst Release 0.28.0 2017-12-25 00:18:05 +01:00
compile-windows.md DOCS/compile-windows.md: update for changes to mpv and MSYS2 2017-10-02 01:28:54 +11:00
contribute.md DOCS/contribute.md: fix a typo 2017-11-30 20:36:09 +01:00
edl-mpv.rst DOCS/edl-mpv.rst: fix typo 2017-02-05 16:02:58 +01:00
encoding.rst player: change default section when loading encoding-profiles.conf 2017-07-12 13:11:14 +02:00
interface-changes.rst options: deprecate --ff- options and properties 2017-12-21 19:51:30 +01:00
mplayer-changes.rst vo_opengl: refactor into vo_gpu 2017-09-21 15:00:55 +02:00
release-policy.md Release 0.25.0 2017-04-23 01:57:53 +02:00
tech-overview.txt DOCS/tech-overview.txt: updates 2017-06-29 17:31:55 +02:00
waf-buildsystem.rst DOCS/waf-buildsystem.rst: fix typo 2017-02-15 10:41:26 +01:00