oneshader articles
Guides to working with OneShader: how-tos, migrations and comparisons.
-
HLSL wave intrinsics on Vulkan, Metal and WebGPU
Every SM 6.0 wave and quad intrinsic with its SPIR-V instruction, Metal SIMD-group function, WGSL subgroup builtin and the device feature it needs.
-
HLSL vs GLSL
HLSL vs GLSL compared on syntax, compilers and targets: both compile to SPIR-V for Vulkan, so the choice comes down to your APIs, tooling and language features.
-
Converting HLSL to WGSL for WebGPU
Convert HLSL to WGSL for WebGPU through DXC and naga, or directly with OneShader: commands, where each path breaks, push constants, atomics and validation.
-
Compiling HLSL to SPIR-V for Vulkan
Compile HLSL to SPIR-V with DXC, glslang or OneShader: the commands, how registers become Vulkan bindings, the flags that bite, and how to validate the output.
-
Converting HLSL to Metal
Three ways to get HLSL onto Metal: DXC with SPIRV-Cross to MSL source, Apple’s Metal Shader Converter from DXIL, or OneShader’s direct MSL, compared and run.
-
HLSL precise and floating-point determinism
What HLSL’s precise keyword guarantees (no fused multiply-adds, no reordering), what it doesn’t, and how it reaches Vulkan, Metal and WebGPU.
-
HLSL constant buffer packing rules
How HLSL packs cbuffer members into 16-byte rows, where Direct3D and Vulkan layouts differ (arrays, matrices), and how to write a C# struct that matches.
-
Compiling HLSL shaders in a C# project
Four ways to compile HLSL in a .NET project: dxc from MSBuild, Vortice.Dxc, OneShader’s build package or its runtime compiler, with verified projects.