Why convert PSSL to GLSL?
Teams moving a PS4 renderer to OpenGL or Vulkan need their PSSL shaders in .GLSL. PSSL reads much like HLSL, and GLSL expresses the same concepts with different keywords, so a careful line-by-line port plus a small macro header does the job. A common shortcut is to port PSSL to HLSL first and then run an automated HLSL-to-GLSL cross-compiler.
How to convert PSSL to GLSL
Manual port in a text editor FREE
Open the .pssl file and rewrite it as GLSL: convert Texture2D/SamplerState pairs to sampler2D, replace input/output semantics with layout(location=...), and map mul() to GLSL's * operator with transposed matrices.
Port to HLSL, then ShaderConductor OPEN-SOURCE
Convert PSSL to HLSL first, then run Microsoft's ShaderConductor (or SPIRV-Cross) to emit readable GLSL automatically from that HLSL.
Macro shim header FREE
Add a shared #define header that aliases PSSL keywords to GLSL equivalents so much of the body compiles unchanged, similar to Frictional Games' cross-platform HPSL approach.
About these formats
A .pssl file holds shader code written in Sony's PlayStation Shader Language, the GPU programming language used for PlayStation 4 and PlayStation 5 game development. Text-based .pssl files…
Open .PSSL details →A .GLSL file is associated with OpenGL Shading Language source code, a misc file.
Open .GLSL details →Quality & what to watch
- No parser reads PSSL directly, so the first hop is always manual editing.
- HLSL/PSSL use row-major matrices and clip-space z in [0,1]; GLSL is column-major with z in [-1,1], so matrix math and depth need adjusting.
- PS4-only intrinsics and register-specific bindings have no GLSL equivalent and must be replaced by hand.