Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdgpu/swsmu: default to fullscreen 3D profile for dGPUs

This uses more aggressive hueristics than the the bootup default
profile. On windows the OS has a special fullscreen 3D mode
where this is used. Since we don't have the equivalent on Linux
default to this profile for dGPUs.

Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3618
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/1500
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3131
Fixes: c50fe289ed72 ("drm/amdgpu/swsmu: always force a state reprogram on init")
Reviewed-by: Kenneth Feng <kenneth.feng@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

+5 -1
+5 -1
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
··· 1265 1265 smu->workload_prority[PP_SMC_POWER_PROFILE_VR] = 4; 1266 1266 smu->workload_prority[PP_SMC_POWER_PROFILE_COMPUTE] = 5; 1267 1267 smu->workload_prority[PP_SMC_POWER_PROFILE_CUSTOM] = 6; 1268 - smu->workload_mask = 1 << smu->workload_prority[PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT]; 1268 + 1269 + if (smu->is_apu) 1270 + smu->workload_mask = 1 << smu->workload_prority[PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT]; 1271 + else 1272 + smu->workload_mask = 1 << smu->workload_prority[PP_SMC_POWER_PROFILE_FULLSCREEN3D]; 1269 1273 1270 1274 smu->workload_setting[0] = PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT; 1271 1275 smu->workload_setting[1] = PP_SMC_POWER_PROFILE_FULLSCREEN3D;