diff --git a/gfx/drivers_shader/shader_vulkan.cpp b/gfx/drivers_shader/shader_vulkan.cpp index c884381c34..c64a63fef3 100644 --- a/gfx/drivers_shader/shader_vulkan.cpp +++ b/gfx/drivers_shader/shader_vulkan.cpp @@ -2275,8 +2275,6 @@ static unique_ptr vulkan_filter_chain_load_lut(VkCommandBuffer cm ptr = buffer->map(); memcpy(ptr, image.pixels, image.width * image.height * sizeof(uint32_t)); buffer->unmap(); - image_texture_free(&image); - image.pixels = nullptr; image_layout_transition(cmd, tex, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, @@ -2299,6 +2297,9 @@ static unique_ptr vulkan_filter_chain_load_lut(VkCommandBuffer cm VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT); + image_texture_free(&image); + image.pixels = nullptr; + return unique_ptr(new StaticTexture(shader->id, info->device, tex, view, memory, move(buffer), image.width, image.height));