Comment by veltas

Comment by veltas 5 hours ago

5 replies

Basically all native libraries inevitably have bad or difficult to follow documentation like this, proprietary or open source. Vulkan is the exception as it's a standard so needs to be very clear so all stakeholders can implement it correctly.

Usually I find if you're using an open source library you need the whole source checked out for reference, better than proprietary libraries where you need to pay and sign an NDA to get that access or equivalent support.

socalgal2 5 hours ago

Vulkan spec is missing tons of stuff. Implementers check they pass the conformance tests (tho those also miss stuff)

directx also has conformance tests.

The directx specs are arguably better in many ways than the vulkan specs. They go into bit level details how various math is required to work, especially in samplers

  • veltas 4 hours ago

    I'm sure it misses stuff, but generally a 'spec' is better than a 'doc' for the reason that you need enough info to at least guess how a spec is implemented, whereas a doc can leave everything out and as long as the programmer has headers and some examples they can probably do 90% of what is needed.

pjmlp 5 hours ago

Extensions to Khronos standards are hardly that greatly documented.

A TXT dump of the proposal, with luck a sample from the GPU vendor, and that is all.

Vulkan was famously badly documented, one only has to go to LunarG yearly reports regarding community feedback on Vulkan, and related action points.

OpenGL 4.6 never has had a red book editon, Vulkan only had a red book for 1.0, OpenCL and SYSCL just have the PDF reference, not all Khronos APIs have a cheatsheeet PDF on Khronos site.

  • veltas 4 hours ago

    And the red book isn't that good either.

flohofwoe an hour ago

> Vulkan is the exception as it's a standard so needs to be very clear so all stakeholders can implement it correctly.

Lol... while the Vulkan documentation situation is a lot better than OpenGL it's not any better than the documentation of other 3D APIs, especially when trying to make sense of extensions (which depend on other extensions, which in turn depend on other extensions - once you're at the end of the breadcrumb trail you already have forgotten what the original question was).

D3D has a 'functional spec' here which provides a lot more under-the-hood information than what's available on https://docs.vulkan.org/spec/latest/index.html:

https://microsoft.github.io/DirectX-Specs/