mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 06:58:05 +02:00
gallium/pipe: add interface update_decoder_target
reason:
decoder uses the target buffer address in record
to indentify the reference frames. When target
buffer has changed outside of decoding process,
it has to be updated back to decoder, otherwise
the outdated reference will cause image corruption.
Cc: mesa-stable
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23061>
(cherry picked from commit 5b2544f868)
This commit is contained in:
parent
d2e028f633
commit
9d4bc470cd
2 changed files with 14 additions and 1 deletions
|
|
@ -1246,7 +1246,7 @@
|
|||
"description": "gallium/pipe: add interface update_decoder_target",
|
||||
"nominated": true,
|
||||
"nomination_type": 0,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null
|
||||
},
|
||||
|
|
|
|||
|
|
@ -133,6 +133,19 @@ struct pipe_video_codec
|
|||
int (*get_decoder_fence)(struct pipe_video_codec *codec,
|
||||
struct pipe_fence_handle *fence,
|
||||
uint64_t timeout);
|
||||
/**
|
||||
* Update target buffer address.
|
||||
*
|
||||
* Due to reallocation, target buffer address has changed, and the
|
||||
* changed buffer will need to update to decoder so that when this buffer
|
||||
* used as a reference frame, decoder can obtain its recorded information.
|
||||
* Failed updating this buffer will miss reference frames and
|
||||
* cause image corruption in the sebsequent output.
|
||||
* If no target buffer change, this call is not necessary.
|
||||
*/
|
||||
void (*update_decoder_target)(struct pipe_video_codec *codec,
|
||||
struct pipe_video_buffer *old,
|
||||
struct pipe_video_buffer *updated);
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue