[PATCH] drm/amdgpu/vcn: drop gfxoff control for VCN2+

Zhang, Boyuan Boyuan.Zhang at amd.com
Mon Jun 7 21:32:13 UTC 2021

[AMD Official Use Only]

Patch is
Reviewed-by: Boyuan Zhang <Boyuan.Zhang at amd.com>


-----Original Message-----
From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of Alex Deucher
Sent: June 7, 2021 4:29 PM
To: amd-gfx at lists.freedesktop.org
Cc: Deucher, Alexander <Alexander.Deucher at amd.com>
Subject: [PATCH] drm/amdgpu/vcn: drop gfxoff control for VCN2+

Drop disabling of gfxoff during VCN use.  This allows gfxoff to kick in and potentially save power if the user is not using gfx for color space conversion or scaling.

VCN1.0 had a bug which prevented it from working properly with gfxoff, so we disabled it while using VCN.  That said, most apps today use gfx for scaling and color space conversion rather than overlay planes so it was generally in use anyway. This was fixed on VCN2+, but since we mostly use gfx for color space conversion and scaling and rapidly powering up/down gfx can negate the advantages of gfxoff, we left gfxoff disabled. As more applications use overlay planes for color space conversion and scaling, this starts to be a win, so go ahead and leave gfxoff enabled.

Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
 drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
index 1dc11dbd62b7..647d2c31e8bd 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
@@ -393,7 +393,6 @@ static void amdgpu_vcn_idle_work_handler(struct work_struct *work)

        if (!fences && !atomic_read(&adev->vcn.total_submission_cnt)) {
-               amdgpu_gfx_off_ctrl(adev, true);
                amdgpu_device_ip_set_powergating_state(adev, AMD_IP_BLOCK_TYPE_VCN,
                r = amdgpu_dpm_switch_power_profile(adev, PP_SMC_POWER_PROFILE_VIDEO, @@ -413,7 +412,6 @@ void amdgpu_vcn_ring_begin_use(struct amdgpu_ring *ring)

        if (!cancel_delayed_work_sync(&adev->vcn.idle_work)) {
-               amdgpu_gfx_off_ctrl(adev, false);
                r = amdgpu_dpm_switch_power_profile(adev, PP_SMC_POWER_PROFILE_VIDEO,
                if (r)

amd-gfx mailing list
amd-gfx at lists.freedesktop.org

More information about the amd-gfx mailing list