4 ms·
Is it conceivable to be able to play PS4 games on other platforms? I.e. what are the theoretical minimum performance costs of emulating PS4?
by dmos62 7y ago
Is it conceivable to be able to play PS4 games on other platforms? I.e. what are the theoretical minimum performance costs of emulating PS4?
- garaetjjte 7y agoCPU is just x86-64, so on PC no emulation of that is necessary. More problematic is translation of custom graphics API (Gnm/Gnmx) and shading language (PSSL), but similar feats were done before (DirectX->OpenGL wined3d, DirectX->Vulkan DXVK, etc.) so it should be doable. Game performance might be hurt because they could have assumed that CPU<>GPU transfers are very fast, on PS4 it is UMA with single memory. Though I wonder how feasible would be trying to pull graphics driver from PS4 firmware and make it to work with Radeon HD7000 series GPU.
- MayeulC 7y agoThe original Xbox is x86 as well, the complex part is emulating the GPU, DSP, etc, which developers sometimes use at a very low level, setting registers, relying on HW quirks, etc (see: xqemu) Maybe such low-level optimizations are now longer necessary with more powerful consoles, though? Regarding GPU drivers, that seems quite doable, as the PS4 Linux port uses slightly modified open source drivers, and gets good performance, IIRC.
- Jasper_ 7y agoPSSL doesn't need to be emulated, it's compiled offline to machine code binaries for the GPU. The DirectX -> OpenGL wined3d backend is similar inspirit, but the bytecode (DXBC) in D3D is a much, much higher level, so better compilation is possible. Untangling machine code into good shading language is not easy. Additionally, GNM is a lot lower level than even something like Vulkan, and you can pass pointers directly between the CPU and GPU, they share the same memory space. It's this that makes emulating things tricky. > Though I wonder how feasible would be trying to pull graphics driver from PS4 firmware There is no "graphics driver", in the traditional sense.
- earenndil 7y ago> PSSL doesn't need to be emulated ...which makes the job much harder. Shading languages aren't terribly complicated; implementing a compiler from one to native spir-v/whatever is a reasonable task. Translating from one shader bytecode to another is a more involved operation.
- kevingadd 7y agoThe way the memory interface works seems like a big barrier. Some games probably don't lean on its true power - the ones I've worked on do not - but a PS4 game can do some truly wild stuff involving GPU/CPU memory sharing, control over memory caching, etc that you can't really do on a desktop PC for various reasons. You can get closer with modern APIs like Vulkan, at least, but I suspect there will always be some subset of PS4 titles that literally cannot function in a typical desktop PC user-mode environment without some truly devious hacks and workarounds. As far as compute goes though the PS4 is basically just a 64-bit x86 machine with a strong integrated GPU, so the workloads can be adapted to run on desktop hardware.