[Mesa-dev] [Mesa-stable] [PATCH] radeon/vce: move feedback command inside of destroy function
Leo Liu
leo.liu at amd.com
Wed Apr 4 19:05:15 UTC 2018
On 04/04/2018 12:40 PM, Mark Janes wrote:
> Leo Liu <leo.liu at amd.com> writes:
>
>> On the CI family, firmware requires the destory command have to be the
>> last command in the IB, moving feedback command after destroy is causing
>> issues on CI cards, so we have to keep the previous logic that moves
>> destroy back to the last command.
>>
>> But as the original issue fixed previously, with the newer family like Vega10,
>> feedback command have to be included inside of the task info command along
>> with destroy command.
>>
>> Fixes: 6d74cb25("radeon/vce: move destroy command before feedback command")
>>
>> Signed-off-by: Leo Liu <leo.liu at amd.com>
>> Cc: mesa-stable at lists.freedesktop.org
> These tags seem ambiguous to me. If this commit fixes a specific
> commit, then the patch should be applied only to stable branches which
> contain that commit.
>
> However, the mesa-stable CC caused this patch to be applied to 17.3,
> which does *not* contain the broken patch.
>
> Leo: did you intend for the mesa-stable CC to cause this patch to be
> applied to older stable branches?
I would like to have this patch apply to branches "17.2", "17.3",
"18.0", which got patch titled "radeon/vce: move destroy command before
feedback command"
And this Cc-ed patch is to fix "radeon/vce: move destroy command before
feedback command"
Thanks,
Leo
>
> Release managers: is there a protocol for how this specification should
> be parsed, when considering a patch for stable?
>
>> ---
>> src/gallium/drivers/radeon/radeon_vce.c | 1 -
>> src/gallium/drivers/radeon/radeon_vce_40_2_2.c | 2 ++
>> src/gallium/drivers/radeon/radeon_vce_52.c | 18 ++++++++++--------
>> 3 files changed, 12 insertions(+), 9 deletions(-)
>>
>> diff --git a/src/gallium/drivers/radeon/radeon_vce.c b/src/gallium/drivers/radeon/radeon_vce.c
>> index 427bf01ed8..c84103e0ac 100644
>> --- a/src/gallium/drivers/radeon/radeon_vce.c
>> +++ b/src/gallium/drivers/radeon/radeon_vce.c
>> @@ -247,7 +247,6 @@ static void rvce_destroy(struct pipe_video_codec *encoder)
>> enc->fb = &fb;
>> enc->session(enc);
>> enc->destroy(enc);
>> - enc->feedback(enc);
>> flush(enc);
>> si_vid_destroy_buffer(&fb);
>> }
>> diff --git a/src/gallium/drivers/radeon/radeon_vce_40_2_2.c b/src/gallium/drivers/radeon/radeon_vce_40_2_2.c
>> index f1db47d4bd..04e9d7f5e1 100644
>> --- a/src/gallium/drivers/radeon/radeon_vce_40_2_2.c
>> +++ b/src/gallium/drivers/radeon/radeon_vce_40_2_2.c
>> @@ -421,6 +421,8 @@ static void destroy(struct rvce_encoder *enc)
>> {
>> enc->task_info(enc, 0x00000001, 0, 0, 0);
>>
>> + feedback(enc);
>> +
>> RVCE_BEGIN(0x02000001); // destroy
>> RVCE_END();
>> }
>> diff --git a/src/gallium/drivers/radeon/radeon_vce_52.c b/src/gallium/drivers/radeon/radeon_vce_52.c
>> index a941c476f6..421539c4bd 100644
>> --- a/src/gallium/drivers/radeon/radeon_vce_52.c
>> +++ b/src/gallium/drivers/radeon/radeon_vce_52.c
>> @@ -458,14 +458,6 @@ static void config_extension(struct rvce_encoder *enc)
>> RVCE_END();
>> }
>>
>> -static void destroy(struct rvce_encoder *enc)
>> -{
>> - enc->task_info(enc, 0x00000001, 0, 0, 0);
>> -
>> - RVCE_BEGIN(0x02000001); // destroy
>> - RVCE_END();
>> -}
>> -
>> static void feedback(struct rvce_encoder *enc)
>> {
>> RVCE_BEGIN(0x05000005); // feedback buffer
>> @@ -474,6 +466,16 @@ static void feedback(struct rvce_encoder *enc)
>> RVCE_END();
>> }
>>
>> +static void destroy(struct rvce_encoder *enc)
>> +{
>> + enc->task_info(enc, 0x00000001, 0, 0, 0);
>> +
>> + feedback(enc);
>> +
>> + RVCE_BEGIN(0x02000001); // destroy
>> + RVCE_END();
>> +}
>> +
>> static void motion_estimation(struct rvce_encoder *enc)
>> {
>> RVCE_BEGIN(0x04000007); // motion estimation
>> --
>> 2.14.1
>>
>> _______________________________________________
>> mesa-stable mailing list
>> mesa-stable at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-stable
More information about the mesa-dev
mailing list