(Vulkan) Cleanups

This commit is contained in:
twinaphex 2020-06-28 21:20:18 +02:00
parent 5a0bc479b1
commit 37bfbed3f5
2 changed files with 26 additions and 13 deletions

View File

@ -305,22 +305,23 @@ static void gfx_display_vk_clear_color(
{
VkClearRect rect;
VkClearAttachment attachment;
vk_t *vk = (vk_t*)data;
vk_t *vk = (vk_t*)data;
if (!vk || !clearcolor)
return;
memset(&attachment, 0, sizeof(attachment));
memset(&rect, 0, sizeof(rect));
attachment.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
attachment.colorAttachment = 0;
attachment.clearValue.color.float32[0] = clearcolor->r;
attachment.clearValue.color.float32[1] = clearcolor->g;
attachment.clearValue.color.float32[2] = clearcolor->b;
attachment.clearValue.color.float32[3] = clearcolor->a;
rect.rect.extent.width = vk->context->swapchain_width;
rect.rect.extent.height = vk->context->swapchain_height;
rect.layerCount = 1;
rect.rect.offset.x = 0;
rect.rect.offset.y = 0;
rect.rect.extent.width = vk->context->swapchain_width;
rect.rect.extent.height = vk->context->swapchain_height;
rect.baseArrayLayer = 0;
rect.layerCount = 1;
vkCmdClearAttachments(vk->cmd, 1, &attachment, 1, &rect);
}

View File

@ -106,7 +106,7 @@ static void *vulkan_raster_font_init_font(void *data,
return NULL;
}
font->atlas = font->font_driver->get_atlas(font->font_data);
font->atlas = font->font_driver->get_atlas(font->font_data);
font->texture = vulkan_create_texture(font->vk, NULL,
font->atlas->width, font->atlas->height, VK_FORMAT_R8_UNORM, font->atlas->buffer,
NULL /*&swizzle*/, VULKAN_TEXTURE_STAGING);
@ -285,16 +285,21 @@ static void vulkan_raster_font_flush(vulkan_raster_t *font)
if(font->needs_update)
{
VkCommandBuffer staging;
VkSubmitInfo submit_info = { VK_STRUCTURE_TYPE_SUBMIT_INFO };
VkCommandBufferAllocateInfo cmd_info = { VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO };
VkCommandBufferBeginInfo begin_info = { VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO };
VkSubmitInfo submit_info;
VkCommandBufferAllocateInfo cmd_info;
VkCommandBufferBeginInfo begin_info;
cmd_info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
cmd_info.pNext = NULL;
cmd_info.commandPool = font->vk->staging_pool;
cmd_info.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY;
cmd_info.commandBufferCount = 1;
vkAllocateCommandBuffers(font->vk->context->device, &cmd_info, &staging);
begin_info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
begin_info.pNext = NULL;
begin_info.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
begin_info.pInheritanceInfo = NULL;
vkBeginCommandBuffer(staging, &begin_info);
vulkan_copy_staging_to_dynamic(font->vk, staging,
@ -306,8 +311,15 @@ static void vulkan_raster_font_flush(vulkan_raster_t *font)
slock_lock(font->vk->context->queue_lock);
#endif
submit_info.commandBufferCount = 1;
submit_info.pCommandBuffers = &staging;
submit_info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
submit_info.pNext = NULL;
submit_info.waitSemaphoreCount = 0;
submit_info.pWaitSemaphores = NULL;
submit_info.pWaitDstStageMask = NULL;
submit_info.commandBufferCount = 1;
submit_info.pCommandBuffers = &staging;
submit_info.signalSemaphoreCount = 0;
submit_info.pSignalSemaphores = NULL;
vkQueueSubmit(font->vk->context->queue,
1, &submit_info, VK_NULL_HANDLE);