[PATCH] drm/amdgpu/vcn: drop gfxoff control for VCN2+
Alex Deucher
alexdeucher at gmail.com
Mon Jun 7 21:29:50 UTC 2021
On Mon, Jun 7, 2021 at 4:54 PM Ernst Sjöstrand <ernstp at gmail.com> wrote:
>
> Hi,
>
> doesn't this patch apply the change to VCN1.0 also, which has that bug you mentioned?
>
Nope. VCN1.0 uses vcn_v1_0_idle_work_handler() and
vcn_v1_0_ring_begin_use() as they have other special handling in
addition to this.
Alex
> Regards
> //Ernst
>
> Den mån 7 juni 2021 kl 22:29 skrev Alex Deucher <alexander.deucher at amd.com>:
>>
>> 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,
>> AMD_PG_STATE_GATE);
>> 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)
>> atomic_inc(&adev->vcn.total_submission_cnt);
>>
>> 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,
>> true);
>> if (r)
>> --
>> 2.31.1
>>
>> _______________________________________________
>> amd-gfx mailing list
>> amd-gfx at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
More information about the amd-gfx
mailing list