#939999 libvulkan-dev: Please include manpages for all library functions, structs, extensions

Package:
libvulkan-dev
Source:
vulkan-loader
Description:
Vulkan loader library -- development files
Submitter:
Witold Baryluk
Date:
2019-11-20 12:42:08 UTC
Severity:
wishlist
#939999#5
Date:
2019-09-10 22:28:20 UTC
From:
To:
The upstream do have both a general Vulkan spec text plus all the
functions description, but the functions and structures / types
documentation is also available as "manual pages", i.e.

https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceFeatures.html

https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateDisplayModeKHR.html

etc.

It can also be found via this page:

https://vulkan.lunarg.com/doc/sdk/1.1.114.0/windows/apispec.html

where they are kind of bundled together.

They already look man-like to me.

These are all generated afaik from common source somewhere, and should be
very easy to generate nroff (or troff/groff) / man files and include in
the package. PS. Make sure they are compressed. man supports .Z, .z and
.gz, and automatically decompresses them. (I have 18380 .gz files in my
/usr/share/man directory, and zero uncompcressed files).

I think this is the source for all these docs, both a specification and
man pages:

https://github.com/KhronosGroup/Vulkan-Docs

It appears that most of the documentation and spec is written in
asciidoctor, and could be transformed to proper format.

I am not sure where exactly the text for this html pages comes from, as
they contain way more descriptions than just what is in the registry
/usr/share/vulkan/registry/vk.xml , which only provide short comments for
each member of struct or argument, but not full documentation and
explanation of semantics, or valid usages. In fact the registry doesn't
provide any comments or descriptions about functions, only about fields
in types (structs).

AFAIK, it would be fine to bundle these man pages in libvulkan-dev
package, without needing separate package.

With possibly separate libvulkan-doc for the full spec text, tutorials
and examples from SDK.

Similar generated docs:

https://devdocs.io/vulkan/
https://vulkan.lunarg.com/doc/view/1.0.30.0/linux/vkspec.chunked/ch04s01.html

Any way, considering how complex and explicit the spec is, with its
number of input, output structs, functions and extensions, it make sense
to have it more accessible from terminal (or other man viewer or IDE that
can link to man pages) quickly without using Internet or Google. ;)

Cheers,
Witold

#939999#10
Date:
2019-09-11 21:58:15 UTC
From:
To:
Just a minor update,

https://www.khronos.org/registry/vulkan/

section 'API Reference Pages' says:

""" In addition to the format published here, it is possible to generate other
formats from the reference page sources, such as PDF or Unix nroff man page
sources. """

I couldn't find the nroff generator in the git repo, but maybe I didn't
search well, (maybe it was removed in master head in git?).

Also, I found out that indeed it is possible, as Arch does ship with vulkan man
pages:


https://aur.archlinux.org/packages/vulkan-man-git/

Examples:

https://manned.org/VkDeviceCreateInfo.3
https://manned.org/vkCreateGraphicsPipelines.3


Sources (not upstreamed fully yet) are in this forked repo:
https://github.com/Ryp/Vulkan-Docs

and some diffs can be seen here:

https://github.com/KhronosGroup/Vulkan-Docs/compare/master...Ryp:master

So, it looks pretty easy. Bulk of the work is done by asciidoctor output plugin,
which is part of official upstream asciidoctor:

https://asciidoctor.org/docs/user-manual/#man-pages

So, there is very little extra work to do beyond maybe adding a small patch to
docs, and adding a package.


Thank you.

#939999#15
Date:
2019-11-20 12:40:21 UTC
From:
To:
The repo seems obsolete. Providing manpages belongs upstream, file it there.