A new CPU performance scaling proposal for tuning VKD3D-Proton

Ray Huang

Playlists: 'xdc2021' videos starting here / audio

The CPU performance scaling is one of key parts in Linux Kernel, it is to manage the CPU frequency according to kernel and processor status and widely used by many user mode application to talk to the processors. The system information APIs in Wine will use the CPU performance scaling interfaces to manage the multi-core processor schedule timing compatibilities from windows application to Linux environment for VKD3D-Proton (the full Direct3D 12 API on top of Vulkan) on Steam. The original CPU performance scaling module is based on the legacy kernel common ACPI cpufreq driver on AMD processors. We found it was not very performance/power efficiency for modern AMD platforms. So this talk is to introduce a new CPU performance scaling design for AMD platform which has better performance per watt scaling on such as 3D game like Horizon Zero Dawn with VKD3D-Proton on Steam.

The idea is inspired by co-working with Valve software guys for tuning animation slow down problem (https://github.com/ValveSoftware/Proton/issues/4125) of VKD3D-Proton on steam.