mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-17 21:14:47 +00:00
hwcontext_vulkan: add the mapped software frame as an upload dependency
We do uploads asynchronously, and we map the software frames in order to avoid 2-stage copying. However, whilst we added a dependency upon the mapped buffers, we did not add the original frame backing those buffers as a dependency. This caused issues on RADV, particularly with RGB images.
This commit is contained in:
parent
1876026f83
commit
d0ab49e3e7
@ -4154,8 +4154,18 @@ static int vulkan_transfer_frame(AVHWFramesContext *hwfc,
|
|||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto end;
|
goto end;
|
||||||
|
|
||||||
/* No need to declare buf deps for synchronous transfers */
|
/* No need to declare buf deps for synchronous transfers (downloads) */
|
||||||
if (upload) {
|
if (upload) {
|
||||||
|
/* Add the software frame backing the buffers if we're host mapping */
|
||||||
|
if (host_mapped) {
|
||||||
|
err = ff_vk_exec_add_dep_sw_frame(&p->vkctx, exec, swf);
|
||||||
|
if (err < 0) {
|
||||||
|
ff_vk_exec_discard_deps(&p->vkctx, exec);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Add the buffers as a dependency */
|
||||||
err = ff_vk_exec_add_dep_buf(&p->vkctx, exec, bufs, nb_bufs, 1);
|
err = ff_vk_exec_add_dep_buf(&p->vkctx, exec, bufs, nb_bufs, 1);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
ff_vk_exec_discard_deps(&p->vkctx, exec);
|
ff_vk_exec_discard_deps(&p->vkctx, exec);
|
||||||
|
Loading…
Reference in New Issue
Block a user