wined3d: Introduce wined3d_context_vk_reference_texture().

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Henri Verbeet 2020-04-24 02:21:23 +04:30 committed by Alexandre Julliard
parent 036d0d29a6
commit 0aee4d9a88
2 changed files with 9 additions and 3 deletions

View File

@ -4624,7 +4624,7 @@ static void wined3d_texture_vk_upload_data(struct wined3d_context *context,
vk_access_mask_from_bind_flags(dst_texture_vk->t.resource.bind_flags),
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, dst_texture_vk->layout,
dst_texture_vk->vk_image, aspect_mask);
dst_texture_vk->command_buffer_id = context_vk->current_command_buffer.id;
wined3d_context_vk_reference_texture(context_vk, dst_texture_vk);
wined3d_context_vk_reference_bo(context_vk, &staging_bo);
wined3d_context_vk_destroy_bo(context_vk, &staging_bo);
}
@ -4757,7 +4757,7 @@ static void wined3d_texture_vk_download_data(struct wined3d_context *context,
VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, src_texture_vk->layout,
src_texture_vk->vk_image, aspect_mask);
src_texture_vk->command_buffer_id = context_vk->current_command_buffer.id;
wined3d_context_vk_reference_texture(context_vk, src_texture_vk);
wined3d_context_vk_reference_bo(context_vk, &staging_bo);
wined3d_context_vk_submit_command_buffer(context_vk, 0, NULL, NULL, 0, NULL);
wined3d_context_vk_wait_command_buffer(context_vk, src_texture_vk->command_buffer_id);
@ -4977,7 +4977,7 @@ static BOOL wined3d_texture_vk_prepare_texture(struct wined3d_texture_vk *textur
return FALSE;
}
texture_vk->command_buffer_id = context_vk->current_command_buffer.id;
wined3d_context_vk_reference_texture(context_vk, texture_vk);
wined3d_context_vk_image_barrier(context_vk, vk_command_buffer,
VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
0, 0,

View File

@ -5488,6 +5488,12 @@ static inline void wined3d_context_vk_reference_bo(struct wined3d_context_vk *co
bo->command_buffer_id = context_vk->current_command_buffer.id;
}
static inline void wined3d_context_vk_reference_texture(struct wined3d_context_vk *context_vk,
struct wined3d_texture_vk *texture_vk)
{
texture_vk->command_buffer_id = context_vk->current_command_buffer.id;
}
static inline BOOL wined3d_dsv_srv_conflict(const struct wined3d_rendertarget_view *dsv,
const struct wined3d_format *srv_format)
{