diff --git a/gfx/common/vulkan_common.c b/gfx/common/vulkan_common.c index 384a5f2a29..2abff2515c 100644 --- a/gfx/common/vulkan_common.c +++ b/gfx/common/vulkan_common.c @@ -915,9 +915,6 @@ static void vulkan_write_quad_descriptors( void vulkan_transition_texture(vk_t *vk, VkCommandBuffer cmd, struct vk_texture *texture) { - if (!texture->image) - return; - /* Transition to GENERAL layout for linear streamed textures. * We're using linear textures here, so only * GENERAL layout is supported. @@ -968,7 +965,7 @@ static void vulkan_check_dynamic_state(vk_t *vk) void vulkan_draw_triangles(vk_t *vk, const struct vk_draw_triangles *call) { - if (call->texture) + if (call->texture->image) vulkan_transition_texture(vk, vk->cmd, call->texture); if (call->pipeline != vk->tracker.pipeline) @@ -1034,7 +1031,8 @@ void vulkan_draw_triangles(vk_t *vk, const struct vk_draw_triangles *call) void vulkan_draw_quad(vk_t *vk, const struct vk_draw_quad *quad) { - vulkan_transition_texture(vk, vk->cmd, quad->texture); + if (quad->texture->image) + vulkan_transition_texture(vk, vk->cmd, quad->texture); if (quad->pipeline != vk->tracker.pipeline) { diff --git a/gfx/drivers/vulkan.c b/gfx/drivers/vulkan.c index 19c4333335..5f9dc8ac6c 100644 --- a/gfx/drivers/vulkan.c +++ b/gfx/drivers/vulkan.c @@ -2138,7 +2138,7 @@ static bool vulkan_frame(void *data, const void *frame, if (vk->swapchain[vk->last_valid_index].texture_optimal.memory != VK_NULL_HANDLE) tex = &vk->swapchain[vk->last_valid_index].texture_optimal; - else + else if (tex->image) vulkan_transition_texture(vk, vk->cmd, tex); input.image = tex->image;