summaryrefslogtreecommitdiffstats
path: root/DOCS/man/options.rst
diff options
context:
space:
mode:
authorNiklas Haas <git@haasn.xyz>2017-09-13 03:09:48 +0200
committerNiklas Haas <git@haasn.xyz>2017-09-26 17:25:35 +0200
commit258487370fd840b018a404225277d74f74899c59 (patch)
tree83a9a112d141f08a87d290ddf0aa57ea04fbf60a /DOCS/man/options.rst
parent91f23c7067af248846420854a0dc78c26ea6e300 (diff)
downloadmpv-258487370fd840b018a404225277d74f74899c59.tar.bz2
mpv-258487370fd840b018a404225277d74f74899c59.tar.xz
vo_gpu: vulkan: generalize SPIR-V compiler
In addition to the built-in nvidia compiler, we now also support a backend based on libshaderc. shaderc is sort of like glslang except it has a C API and is available as a dynamic library. The generated SPIR-V is now cached alongside the VkPipeline in the cached_program. We use a special cache header to ensure validity of this cache before passing it blindly to the vulkan implementation, since passing invalid SPIR-V can cause all sorts of nasty things. It's also designed to self-invalidate if the compiler gets better, by offering a catch-all `int compiler_version` that implementations can use as a cache invalidation marker.
Diffstat (limited to 'DOCS/man/options.rst')
-rw-r--r--DOCS/man/options.rst17
1 files changed, 17 insertions, 0 deletions
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index 80e7350292..078981be24 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -4205,6 +4205,23 @@ The following video options are currently all specific to ``--vo=gpu`` and
as mpv's vulkan implementation currently does not try and protect textures
against concurrent access.
+``--spirv-compiler=<compiler>``
+ Controls which compiler is used to translate GLSL to SPIR-V. This is
+ (currently) only relevant for ``--gpu-api=vulkan``. The possible choices
+ are:
+
+ auto
+ Use the first available compiler. (Default)
+ shaderc
+ Use libshaderc, which is an API wrapper around glslang. This is
+ generally the most preferred, if available.
+ nvidia
+ Use nvidia's built-in compiler. Only works for nvidia GPUs. Can be
+ buggy, but also supports some features glslang does not. Only works
+ with vulkan. WARNING: Pretty buggy, handles push constants incorrectly
+ (this causes graphical corruption with e.g. ``--temporal-dither``)! Use
+ only for testing.
+
``--glsl-shaders=<file-list>``
Custom GLSL hooks. These are a flexible way to add custom fragment shaders,
which can be injected at almost arbitrary points in the rendering pipeline,