PSSL GLSL
File conversion

Convert PSSL to GLSL

QUICK ANSWER
Is it possible to convert PSSL to GLSL?
Yes - PSSL converts to GLSL.

There is no one-click PSSL-to-GLSL converter, but the two share the same C-like shader structure, so a manual port is very doable. Expect to rewrite texture/sampler declarations, swap semantics for layout qualifiers, and flip matrix conventions.

Also to GLSL: FX · FP

On this page

Tested on macOS, Windows & Linux
Last verified Oct 2026

More free converters

HEIC, PNG, WEBP, MP3 and more - every tool here is free.

Open the toolbox

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

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.

Frequently asked questions

Is there an automatic PSSL to GLSL tool?
No direct one. Port PSSL to HLSL, then use ShaderConductor or SPIRV-Cross to reach GLSL.
What's the hardest part of the port?
Matrix order and clip-space differences, plus rewriting texture/sampler declarations and semantics.
Do I need the PS4 SDK to do this?
No. The source is plain text, so you can read and rewrite it without Sony's devkit.
Can a macro header do most of the work?
It handles keyword aliasing, but structural differences like binding and matrices still need manual fixes.