render/vulkan: keep wlr_vk_shared_buffer mapped

This commit is contained in:
Simon Ser 2023-11-24 20:13:31 +01:00
parent 50b471e035
commit 79cbbfb366
3 changed files with 12 additions and 13 deletions

View file

@ -78,7 +78,6 @@ static bool write_pixels(struct wlr_vk_texture *texture,
VkAccessFlags src_access) {
VkResult res;
struct wlr_vk_renderer *renderer = texture->renderer;
VkDevice dev = texture->renderer->dev->dev;
const struct wlr_pixel_format_info *format_info = drm_get_pixel_format_info(texture->format->drm);
assert(format_info);
@ -145,20 +144,10 @@ static bool write_pixels(struct wlr_vk_texture *texture,
buf_off += height * packed_stride;
}
void *vmap;
res = vkMapMemory(dev, span.buffer->memory, span.alloc.start,
bsize, 0, &vmap);
if (res != VK_SUCCESS) {
wlr_vk_error("vkMapMemory", res);
free(copies);
return false;
}
copy_pixels(vmap, vdata, texture->wlr_texture.width,
char *dst = (char *)span.buffer->map + span.alloc.start;
copy_pixels(dst, vdata, texture->wlr_texture.width,
stride, bsize, region, format_info);
vkUnmapMemory(dev, span.buffer->memory);
VkSemaphoreSignalInfoKHR signal_info = {
.sType = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR,
.semaphore = renderer->upload_timeline_semaphore,