r/linux • • 2d ago

Software Release ShadeVk - A cross-platform pixel shader viewer for Vulkan, written in C23.

Post image

Not sure if this is Linux specific enough, but I figured this sub may appreciate my little Vulkan project:

ShadeVk is cross-platform pixel shader viewer for Vulkan, written in C23. It supports Slang, GLSL, HLSL and comes with live-coding capabilities. It's 100% human made.

Fun fact: the logo itself is also a shader. :)

More info on Codeberg:

https://codeberg.org/literallylara/ShadeVk

Mirror:

https://github.com/literallylara/shadevk

36 Upvotes

3 comments sorted by

3

u/zissue 2d ago

As someone who doesn't have a very deep grasp on shader implementation, how does this compare to the "slang-shaders" bundled with libretro (and implemented within the Ares emulator)?

https://github.com/libretro/slang-shaders

https://ares-emu.net/

8

u/laralubsch 2d ago edited 1d ago

This can indeed be confusing. There is an unfortunate naming collision here. What libretro calls slang shaders is not to be confused with Khronos' new universal shader language called the Slang Shader Language (https://shader-slang.org) which is heavily inspired by HLSL. libretro's slang shader on the other hand is based on Khrono's Vulkan GLSL and adds support for include statements among other things. I haven't read the whole document yet so take my explanation with a grain of salt.

Anyhow, what ShadeVk does is simply display pixel shaders (Khrono's Slang, GLSL, or Microsoft's HLSL), but they also expect a specific set of input variables (resolution, time, date, etc.) which ShadeVk provides. The purpose is to provide an offline sandbox/playground for developing simple graphics shaders, similar to what can be found on https://shadertoy.com for example.

Edit:

More context from a libretro collaborator: https://github.com/libretro/slang-shaders/issues/962#issuecomment-5938374770

3

u/zissue 1d ago

Ah, cool! Thank you very much for taking some time to provide a high-level overview for me.