Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Shaders are part of the API, they define what the GPU is supposed to do with a bunch of points and textures.

History proves that alternatives to official APIs always follow the CoffeeScript path, the only difference is how fast they eventually die after the initial hype.



Considering that there are already multiple frontend languages for Vulkan shaders - both GLSL and HLSL are supported, and not via cross-compilation - you're quite likely to be proven wrong.

(Let's not even go into the various experimental frontends that target SPIR-V directly. Those likely aren't going anywhere, like most experimental languages.)

Here's the key difference: Vulkan doesn't specify a high-level shader language at all, even though Khronos obviously has a GLSL bias. It specifies SPIR-V, which means that WebAssembly is a better analogy in CPU space than JavaScript/CoffeeScript.


HLSL support is a kind of Google driven effort without being part of official Vulkan specification, due to many devs stating them they wouldn't care about Vulkan without such support, given their amount of DirectX shaders.

Google naturally has a vested interest in making Vulkan being adopted on Android, since it drives sales, as its proper support requires recent flaghship models.

By not being part of Vulkan standard and certification tests, basically if a driver does not handle the SPIR-V as generated by HLSL compiler, good luck with the vendor's support channels.


It's clear that vendors do have a serious interest in supporting SPIR-V as specified, not just SPIR-V as produced by glslang. I can assure you that I have reliable sources for that, though obviously it's up to you whether you want to believe a random internet person.

Also, the Vulkan Conformance Test Suite is open source.[0] Contributions of better SPIR-V tests would certainly be accepted, so Google (or anybody else, really) has an easy path towards forcing better support in drivers if they care sufficiently.

[0] https://github.com/KhronosGroup/VK-GL-CTS/




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: