| @@ -2355,10 +2355,10 @@ static inline void update_set_pool_write(FFVulkanContext *s, FFVkExecContext *e, · 2354 unmodified lines |
| 2355 | } | 2355 | } |
| 2356 | } | 2356 | } |
| 2357 | | 2357 | |
| 2358 | int ff_vk_set_descriptor_image(FFVulkanContext *s, FFVulkanShader *shd, | 2358 | int ff_vk_shader_update_img(FFVulkanContext *s, FFVkExecContext *e, |
| 2359 | FFVkExecContext *e, int set, int bind, int offs, | 2359 | FFVulkanShader *shd, int set, int bind, int offs, |
| 2360 | VkImageView view, VkImageLayout layout, | 2360 | VkImageView view, VkImageLayout layout, |
| 2361 | VkSampler sampler) | 2361 | VkSampler sampler) |
| 2362 | { | 2362 | { |
| 2363 | FFVulkanDescriptorSet *desc_set = &shd->desc_set[set]; | 2363 | FFVulkanDescriptorSet *desc_set = &shd->desc_set[set]; |
| 2364 | | 2364 | |
| @@ -2420,6 +2420,19 @@ int ff_vk_set_descriptor_image(FFVulkanContext *s, FFVulkanShader *shd, · 55 unmodified lines |
| 2420 | return 0; | 2420 | return 0; |
| 2421 | } | 2421 | } |
| 2422 | | 2422 | |
| | 2423 | void ff_vk_shader_update_img_array(FFVulkanContext *s, FFVkExecContext *e, |
| | 2424 | FFVulkanShader *shd, AVFrame *f, |
| | 2425 | VkImageView *views, int set, int binding, |
| | 2426 | VkImageLayout layout, VkSampler sampler) |
| | 2427 | { |
| | 2428 | AVHWFramesContext *hwfc = (AVHWFramesContext *)f->hw_frames_ctx->data; |
| | 2429 | const int nb_planes = av_pix_fmt_count_planes(hwfc->sw_format); |
| | 2430 | |
| | 2431 | for (int i = 0; i < nb_planes; i++) |
| | 2432 | ff_vk_shader_update_img(s, e, shd, set, binding, i, |
| | 2433 | views[i], layout, sampler); |
| | 2434 | } |
| | 2435 | |
| 2423 | int ff_vk_shader_update_desc_buffer(FFVulkanContext *s, FFVkExecContext *e, | 2436 | int ff_vk_shader_update_desc_buffer(FFVulkanContext *s, FFVkExecContext *e, |
| 2424 | FFVulkanShader *shd, | 2437 | FFVulkanShader *shd, |
| 2425 | int set, int bind, int elem, | 2438 | int set, int bind, int elem, |
| @@ -2486,19 +2499,6 @@ int ff_vk_shader_update_desc_buffer(FFVulkanContext *s, FFVkExecContext *e, · 60 unmodified lines |
| 2486 | return 0; | 2499 | return 0; |
| 2487 | } | 2500 | } |
| 2488 | | 2501 | |
| 2489 | void ff_vk_shader_update_img_array(FFVulkanContext *s, FFVkExecContext *e, | | |
| 2490 | FFVulkanShader *shd, AVFrame *f, | | |
| 2491 | VkImageView *views, int set, int binding, | | |
| 2492 | VkImageLayout layout, VkSampler sampler) | | |
| 2493 | { | | |
| 2494 | AVHWFramesContext *hwfc = (AVHWFramesContext *)f->hw_frames_ctx->data; | | |
| 2495 | const int nb_planes = av_pix_fmt_count_planes(hwfc->sw_format); | | |
| 2496 | | | |
| 2497 | for (int i = 0; i < nb_planes; i++) | | |
| 2498 | ff_vk_set_descriptor_image(s, shd, e, set, binding, i, | | |
| 2499 | views[i], layout, sampler); | | |
| 2500 | } | | |
| 2501 | | | |
| 2502 | void ff_vk_shader_update_push_const(FFVulkanContext *s, FFVkExecContext *e, | 2502 | void ff_vk_shader_update_push_const(FFVulkanContext *s, FFVkExecContext *e, |
| 2503 | FFVulkanShader *shd, | 2503 | FFVulkanShader *shd, |
| 2504 | VkShaderStageFlagBits stage, | 2504 | VkShaderStageFlagBits stage, |