(Vulkan) More function pointers for command buffer functions
This commit is contained in:
parent
860ffff3c9
commit
7f5d0f2763
|
@ -437,7 +437,8 @@ struct vk_texture vulkan_create_texture(vk_t *vk,
|
||||||
vkAllocateCommandBuffers(vk->context->device, &cmd_info, &staging);
|
vkAllocateCommandBuffers(vk->context->device, &cmd_info, &staging);
|
||||||
|
|
||||||
begin_info.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
|
begin_info.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
|
||||||
vkBeginCommandBuffer(staging, &begin_info);
|
|
||||||
|
VKFUNC(vkBeginCommandBuffer)(staging, &begin_info);
|
||||||
|
|
||||||
vulkan_image_layout_transition(vk, staging, tmp.image,
|
vulkan_image_layout_transition(vk, staging, tmp.image,
|
||||||
VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_GENERAL,
|
VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_GENERAL,
|
||||||
|
@ -1168,6 +1169,8 @@ bool vulkan_context_init(gfx_ctx_vulkan_data_t *vk,
|
||||||
/* Command buffers */
|
/* Command buffers */
|
||||||
VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, CreateCommandPool);
|
VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, CreateCommandPool);
|
||||||
VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, DestroyCommandPool);
|
VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, DestroyCommandPool);
|
||||||
|
VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, BeginCommandBuffer);
|
||||||
|
VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, ResetCommandBuffer);
|
||||||
VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, EndCommandBuffer);
|
VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, EndCommandBuffer);
|
||||||
|
|
||||||
if (VKFUNC(vkEnumeratePhysicalDevices)(vk->context.instance,
|
if (VKFUNC(vkEnumeratePhysicalDevices)(vk->context.instance,
|
||||||
|
|
|
@ -155,7 +155,6 @@ typedef struct vulkan_context
|
||||||
/* Queues */
|
/* Queues */
|
||||||
PFN_vkGetDeviceQueue vkGetDeviceQueue;
|
PFN_vkGetDeviceQueue vkGetDeviceQueue;
|
||||||
PFN_vkQueueWaitIdle vkQueueWaitIdle;
|
PFN_vkQueueWaitIdle vkQueueWaitIdle;
|
||||||
PFN_vkQueueSubmit vkQueueSubmit;
|
|
||||||
|
|
||||||
/* Pipelines */
|
/* Pipelines */
|
||||||
PFN_vkCmdBindPipeline vkCmdBindPipeline;
|
PFN_vkCmdBindPipeline vkCmdBindPipeline;
|
||||||
|
@ -170,10 +169,15 @@ typedef struct vulkan_context
|
||||||
PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets;
|
PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets;
|
||||||
PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets;
|
PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets;
|
||||||
|
|
||||||
/* Command buffers */
|
/* Command Buffers */
|
||||||
PFN_vkCreateCommandPool vkCreateCommandPool;
|
PFN_vkCreateCommandPool vkCreateCommandPool;
|
||||||
PFN_vkDestroyCommandPool vkDestroyCommandPool;
|
PFN_vkDestroyCommandPool vkDestroyCommandPool;
|
||||||
|
PFN_vkBeginCommandBuffer vkBeginCommandBuffer;
|
||||||
PFN_vkEndCommandBuffer vkEndCommandBuffer;
|
PFN_vkEndCommandBuffer vkEndCommandBuffer;
|
||||||
|
PFN_vkResetCommandBuffer vkResetCommandBuffer;
|
||||||
|
|
||||||
|
/* Command Buffer Submission */
|
||||||
|
PFN_vkQueueSubmit vkQueueSubmit;
|
||||||
|
|
||||||
/* Framebuffers */
|
/* Framebuffers */
|
||||||
PFN_vkCreateFramebuffer vkCreateFramebuffer;
|
PFN_vkCreateFramebuffer vkCreateFramebuffer;
|
||||||
|
|
|
@ -1414,10 +1414,11 @@ static bool vulkan_frame(void *data, const void *frame,
|
||||||
vulkan_buffer_chain_discard(&chain->ubo);
|
vulkan_buffer_chain_discard(&chain->ubo);
|
||||||
|
|
||||||
/* Start recording the command buffer. */
|
/* Start recording the command buffer. */
|
||||||
vk->cmd = chain->cmd;
|
vk->cmd = chain->cmd;
|
||||||
begin_info.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
|
begin_info.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
|
||||||
vkResetCommandBuffer(vk->cmd, 0);
|
VKFUNC(vkResetCommandBuffer)(vk->cmd, 0);
|
||||||
vkBeginCommandBuffer(vk->cmd, &begin_info);
|
|
||||||
|
VKFUNC(vkBeginCommandBuffer)(vk->cmd, &begin_info);
|
||||||
memset(&vk->tracker, 0, sizeof(vk->tracker));
|
memset(&vk->tracker, 0, sizeof(vk->tracker));
|
||||||
|
|
||||||
/* Upload texture */
|
/* Upload texture */
|
||||||
|
|
Loading…
Reference in New Issue