| 858 | } |
| 859 | |
| 860 | void ff_vk_exec_update_frame(FFVulkanContext *s, FFVkExecContext *e, AVFrame *f, |
| 861 | VkImageMemoryBarrier2 *bar, uint32_t *nb_img_bar) |
| 862 | { |
| 863 | int i; |
| 864 | for (i = 0; i < e->nb_frame_deps; i++) |
| 865 | if (e->frame_deps[i]->data[0] == f->data[0]) |
| 866 | break; |
| 867 | av_assert0(i < e->nb_frame_deps); |
| 868 | |
| 869 | /* Don't update duplicates */ |
| 870 | if (nb_img_bar && !e->frame_update[i]) |
| 871 | (*nb_img_bar)++; |
| 872 | |
| 873 | e->queue_family_dst[i] = bar->dstQueueFamilyIndex; |
| 874 | e->access_dst[i] = bar->dstAccessMask; |
| 875 | e->layout_dst[i] = bar->newLayout; |
| 876 | e->frame_update[i] = 1; |
| 877 | } |
| 878 | |
| 879 | int ff_vk_exec_mirror_sem_value(FFVulkanContext *s, FFVkExecContext *e, |
| 880 | VkSemaphore *dst, uint64_t *dst_val, |
no outgoing calls
no test coverage detected