(Vulkan) Add more funcptrs

This commit is contained in:
twinaphex 2016-02-29 23:09:05 +01:00
parent 0e60d20705
commit 4a1a623099
3 changed files with 18 additions and 7 deletions

View File

@ -894,7 +894,9 @@ struct vk_descriptor_manager vulkan_create_descriptor_manager(
return manager;
}
void vulkan_destroy_descriptor_manager(VkDevice device,
void vulkan_destroy_descriptor_manager(
struct vulkan_context_fp *vkcfp,
VkDevice device,
struct vk_descriptor_manager *manager)
{
struct vk_descriptor_pool *node = manager->head;
@ -903,7 +905,7 @@ void vulkan_destroy_descriptor_manager(VkDevice device,
{
struct vk_descriptor_pool *next = node->next;
vkFreeDescriptorSets(device, node->pool,
VKFUNC(vkFreeDescriptorSets)(device, node->pool,
VULKAN_DESCRIPTOR_MANAGER_BLOCK_SETS, node->sets);
vkDestroyDescriptorPool(device, node->pool, NULL);
@ -917,7 +919,7 @@ void vulkan_destroy_descriptor_manager(VkDevice device,
static void vulkan_buffer_chain_step(struct vk_buffer_chain *chain)
{
chain->current = chain->current->next;
chain->offset = 0;
chain->offset = 0;
}
static bool vulkan_buffer_chain_suballoc(struct vk_buffer_chain *chain,
@ -953,7 +955,8 @@ static struct vk_buffer_node *vulkan_buffer_chain_alloc_node(
return node;
}
struct vk_buffer_chain vulkan_buffer_chain_init(VkDeviceSize block_size,
struct vk_buffer_chain vulkan_buffer_chain_init(
VkDeviceSize block_size,
VkDeviceSize alignment,
VkBufferUsageFlags usage)
{
@ -1161,6 +1164,7 @@ bool vulkan_context_init(gfx_ctx_vulkan_data_t *vk,
VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, CreateDescriptorPool);
/* Descriptor sets */
VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, FreeDescriptorSets);
VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, UpdateDescriptorSets);
/* Descriptor Set Layout */

View File

@ -198,6 +198,7 @@ typedef struct vulkan_context
PFN_vkCreateDescriptorPool vkCreateDescriptorPool;
/* Descriptor sets */
PFN_vkFreeDescriptorSets vkFreeDescriptorSets;
PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets;
PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets;
@ -691,14 +692,18 @@ VkDescriptorSet vulkan_descriptor_manager_alloc(
VkDevice device,
struct vk_descriptor_manager *manager);
void vulkan_descriptor_manager_restart(struct vk_descriptor_manager *manager);
void vulkan_descriptor_manager_restart(
struct vk_descriptor_manager *manager);
struct vk_descriptor_manager vulkan_create_descriptor_manager(
struct vulkan_context_fp *vkcfp,
VkDevice device,
const VkDescriptorPoolSize *sizes, unsigned num_sizes,
VkDescriptorSetLayout set_layout);
void vulkan_destroy_descriptor_manager(VkDevice device,
void vulkan_destroy_descriptor_manager(
struct vulkan_context_fp *vkcfp,
VkDevice device,
struct vk_descriptor_manager *manager);
bool vulkan_context_init(gfx_ctx_vulkan_data_t *vk,

View File

@ -480,7 +480,9 @@ static void vulkan_deinit_descriptor_pool(vk_t *vk)
{
unsigned i;
for (i = 0; i < vk->num_swapchain_images; i++)
vulkan_destroy_descriptor_manager(vk->context->device,
vulkan_destroy_descriptor_manager(
&vk->context->fp,
vk->context->device,
&vk->swapchain[i].descriptor_manager);
}