mirror of
https://github.com/libretro/RetroArch
synced 2025-03-22 16:20:58 +00:00
(Vulkan) Add more funcptrs
This commit is contained in:
parent
0e60d20705
commit
4a1a623099
@ -894,7 +894,9 @@ struct vk_descriptor_manager vulkan_create_descriptor_manager(
|
|||||||
return 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_manager *manager)
|
||||||
{
|
{
|
||||||
struct vk_descriptor_pool *node = manager->head;
|
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;
|
struct vk_descriptor_pool *next = node->next;
|
||||||
|
|
||||||
vkFreeDescriptorSets(device, node->pool,
|
VKFUNC(vkFreeDescriptorSets)(device, node->pool,
|
||||||
VULKAN_DESCRIPTOR_MANAGER_BLOCK_SETS, node->sets);
|
VULKAN_DESCRIPTOR_MANAGER_BLOCK_SETS, node->sets);
|
||||||
vkDestroyDescriptorPool(device, node->pool, NULL);
|
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)
|
static void vulkan_buffer_chain_step(struct vk_buffer_chain *chain)
|
||||||
{
|
{
|
||||||
chain->current = chain->current->next;
|
chain->current = chain->current->next;
|
||||||
chain->offset = 0;
|
chain->offset = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool vulkan_buffer_chain_suballoc(struct vk_buffer_chain *chain,
|
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;
|
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,
|
VkDeviceSize alignment,
|
||||||
VkBufferUsageFlags usage)
|
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);
|
VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, CreateDescriptorPool);
|
||||||
|
|
||||||
/* Descriptor sets */
|
/* Descriptor sets */
|
||||||
|
VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, FreeDescriptorSets);
|
||||||
VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, UpdateDescriptorSets);
|
VK_GET_INSTANCE_PROC_ADDR(vk, vk->context.instance, UpdateDescriptorSets);
|
||||||
|
|
||||||
/* Descriptor Set Layout */
|
/* Descriptor Set Layout */
|
||||||
|
@ -198,6 +198,7 @@ typedef struct vulkan_context
|
|||||||
PFN_vkCreateDescriptorPool vkCreateDescriptorPool;
|
PFN_vkCreateDescriptorPool vkCreateDescriptorPool;
|
||||||
|
|
||||||
/* Descriptor sets */
|
/* Descriptor sets */
|
||||||
|
PFN_vkFreeDescriptorSets vkFreeDescriptorSets;
|
||||||
PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets;
|
PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets;
|
||||||
PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets;
|
PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets;
|
||||||
|
|
||||||
@ -691,14 +692,18 @@ VkDescriptorSet vulkan_descriptor_manager_alloc(
|
|||||||
VkDevice device,
|
VkDevice device,
|
||||||
struct vk_descriptor_manager *manager);
|
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 vk_descriptor_manager vulkan_create_descriptor_manager(
|
||||||
struct vulkan_context_fp *vkcfp,
|
struct vulkan_context_fp *vkcfp,
|
||||||
VkDevice device,
|
VkDevice device,
|
||||||
const VkDescriptorPoolSize *sizes, unsigned num_sizes,
|
const VkDescriptorPoolSize *sizes, unsigned num_sizes,
|
||||||
VkDescriptorSetLayout set_layout);
|
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);
|
struct vk_descriptor_manager *manager);
|
||||||
|
|
||||||
bool vulkan_context_init(gfx_ctx_vulkan_data_t *vk,
|
bool vulkan_context_init(gfx_ctx_vulkan_data_t *vk,
|
||||||
|
@ -480,7 +480,9 @@ static void vulkan_deinit_descriptor_pool(vk_t *vk)
|
|||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
for (i = 0; i < vk->num_swapchain_images; 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);
|
&vk->swapchain[i].descriptor_manager);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user