[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