mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-18 06:47:31 -04:00
render/vulkan: add upload timeline semaphore
Doesn't do much at the moment, since it's always signalled when we submit the stage buffer.
This commit is contained in:
parent
361804c727
commit
a59dd1d567
5 changed files with 50 additions and 12 deletions
|
|
@ -81,6 +81,8 @@ static bool write_pixels(struct wlr_vk_texture *texture,
|
|||
return false;
|
||||
}
|
||||
|
||||
uint64_t timeline_point = ++renderer->upload_timeline_point;
|
||||
|
||||
void *vmap;
|
||||
res = vkMapMemory(dev, span.buffer->memory, span.alloc.start,
|
||||
bsize, 0, &vmap);
|
||||
|
|
@ -141,6 +143,18 @@ static bool write_pixels(struct wlr_vk_texture *texture,
|
|||
assert((uint32_t)(map - (char *)vmap) == bsize);
|
||||
vkUnmapMemory(dev, span.buffer->memory);
|
||||
|
||||
VkSemaphoreSignalInfoKHR signal_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR,
|
||||
.semaphore = renderer->upload_timeline_semaphore,
|
||||
.value = timeline_point,
|
||||
};
|
||||
res = renderer->dev->api.vkSignalSemaphoreKHR(renderer->dev->dev, &signal_info);
|
||||
if (res != VK_SUCCESS) {
|
||||
free(copies);
|
||||
wlr_vk_error("vkMapMemory", res);
|
||||
return false;
|
||||
}
|
||||
|
||||
// record staging cb
|
||||
// will be executed before next frame
|
||||
VkCommandBuffer cb = vulkan_record_stage_cb(renderer);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue