Waarom PSSL naar HLSL converteren?
Studio's die dezelfde renderer op PS4 en PC uitbrengen, behouden één shader-body en vertalen naar .HLSL voor Direct3D. PSSL en HLSL delen hetzelfde DX11-stijl model van afzonderlijke Texture2D- en SamplerState-objecten, semantiek en register-bindings, dus een #define-shim dekt de meeste gaten. Alleen console-specifieke intrinsics hebben een echte herschrijving nodig.
Hoe PSSL naar HLSL te converteren
Visual Studio Code met een macro-shim FREE
Open de .pssl in VS Code en voeg een gedeelde header van #defines toe die PSSL-trefwoorden koppelt aan hun HLSL-vormen, en herstel vervolgens eventuele resterende declaraties handmatig.
Handmatige bewerking in een tekstverwerker FREE
Hernoem PSSL sampler/texture en semantische trefwoorden naar HLSL-equivalenten en pas register(t#/s#/b#) bindings aan zodat het bestand compileert met fxc of dxc.
Valideren met dxc OPEN-SOURCE
Compileer het geporteerde bestand met Microsofts dxc shader.hlsl -T ps_6_0 om te bevestigen dat de HLSL geldig is en om eventuele overgebleven PSSL-only syntax op te sporen.
Over deze formaten
Een .pssl-bestand bevat shader-code geschreven in Sony's PlayStation Shader Language, de GPU-programmeertaal die wordt gebruikt voor de ontwikkeling van PlayStation 4- en PlayStation…
Open .PSSL details →Een .HLSL-bestand is gekoppeld aan High Level Shader Language source code, een 3d image-bestand.
Open .HLSL details →Kwaliteit & waar op te letten
- De in Wikipedia gedocumenteerde gelijkenis betekent dat de meeste verschillen cosmetisch zijn, maar er is nog steeds geen kant-en-klare PSSL-parser.
- PS4 GPU-intrinsics en wave/thread-extensies hebben geen HLSL-tegenhanger en moeten opnieuw worden geïmplementeerd of gestubd.
- Resource-register-indices moeten soms opnieuw worden toegewezen om overeen te komen met de verwachtingen van de D3D root-signature.
Veelgestelde vragen
Hoe vergelijkbaar zijn PSSL en HLSL?
Kan een macro-header alleen de klus klaren?
Met welke compiler moet ik testen?
dxc voor Shader Model 6-doelen, of de verouderde fxc voor oudere SM5-shaders.