mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 06:30:10 +01:00
radeon/vce: move feedback command inside of destroy function
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@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Cc: mesa-stable@lists.freedesktop.org
This commit is contained in:
parent
1346a36162
commit
c4de2f0880
3 changed files with 12 additions and 9 deletions
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue