Comment by cubefox

3 months ago

One problem I see is that (e.g.) Qualcomm Adreno GPUs don't even run most Windows games well when executed natively under Windows, due to games only being optimized for GeForce and Radeon. I assume this problem only gets worse when trying to run DirectX games through some sort of translation layer with FEX/DXVK.

The GPU is not run through a translation layer. The GPU is not an x86-64 CPU.

Only the CPU code has to be emulated. The GPU runs natively.

That does not help with poorly supported GPUs of course.

  • Pretty sure the GPU doesn't understand DirectX, which is used for Windows games, so it must be run through a translation layer.

    • Wrapping graphics APIs adds effectively zero overhead if the featureset of the hardware and drivers are a close enough match.

    • Sure, you are translating DirectX to Vulkan and that work is done on the CPU. So it may need emulation. But the Vulkan instructions passed to the GPU are effectively native. The amount of work the GPU has to do to execute against those calls is the same regardless of CPU architecture.