| @@ -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, |
| 2359 | | − FFVkExecContext *e, int set, int bind, int offs, |
| 2360 | | − VkImageView view, VkImageLayout layout, |
| 2361 | | − VkSampler sampler) |
| 2358 | +int ff_vk_shader_update_img(FFVulkanContext *s, FFVkExecContext *e, |
| 2359 | + FFVulkanShader *shd, int set, int bind, int offs, |
| 2360 | + VkImageView view, VkImageLayout layout, |
| 2361 | + VkSampler sampler) |
| 2362 | 2362 | { |
| 2363 | 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 | 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 | 2436 | int ff_vk_shader_update_desc_buffer(FFVulkanContext *s, FFVkExecContext *e, |
| 2424 | 2437 | FFVulkanShader *shd, |
| 2425 | 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 | 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 | 2502 | void ff_vk_shader_update_push_const(FFVulkanContext *s, FFVkExecContext *e, |
| 2503 | 2503 | FFVulkanShader *shd, |
| 2504 | 2504 | VkShaderStageFlagBits stage, |