mirror of https://github.com/PCSX2/pcsx2.git
Vulkan: Use memory budget extension where available
This commit is contained in:
parent
4f735d0201
commit
1a3c20f0f7
|
@ -460,6 +460,8 @@ namespace Vulkan
|
||||||
|
|
||||||
m_optional_extensions.vk_ext_provoking_vertex =
|
m_optional_extensions.vk_ext_provoking_vertex =
|
||||||
SupportsExtension(VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME, false);
|
SupportsExtension(VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME, false);
|
||||||
|
m_optional_extensions.vk_ext_memory_budget =
|
||||||
|
SupportsExtension(VK_EXT_MEMORY_BUDGET_EXTENSION_NAME, false);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -676,6 +678,9 @@ namespace Vulkan
|
||||||
ci.device = m_device;
|
ci.device = m_device;
|
||||||
ci.instance = m_instance;
|
ci.instance = m_instance;
|
||||||
|
|
||||||
|
if (m_optional_extensions.vk_ext_memory_budget)
|
||||||
|
ci.flags |= VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT;
|
||||||
|
|
||||||
VkResult res = vmaCreateAllocator(&ci, &m_allocator);
|
VkResult res = vmaCreateAllocator(&ci, &m_allocator);
|
||||||
if (res != VK_SUCCESS)
|
if (res != VK_SUCCESS)
|
||||||
{
|
{
|
||||||
|
@ -1137,6 +1142,9 @@ namespace Vulkan
|
||||||
m_current_command_buffer = resources.command_buffers[1];
|
m_current_command_buffer = resources.command_buffers[1];
|
||||||
resources.fence_counter = m_next_fence_counter++;
|
resources.fence_counter = m_next_fence_counter++;
|
||||||
resources.init_buffer_used = false;
|
resources.init_buffer_used = false;
|
||||||
|
|
||||||
|
// using the lower 32 bits of the fence index should be sufficient here, I hope...
|
||||||
|
vmaSetCurrentFrameIndex(m_allocator, static_cast<u32>(m_next_fence_counter));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Context::ExecuteCommandBuffer(bool wait_for_completion)
|
void Context::ExecuteCommandBuffer(bool wait_for_completion)
|
||||||
|
|
|
@ -49,6 +49,7 @@ namespace Vulkan
|
||||||
struct OptionalExtensions
|
struct OptionalExtensions
|
||||||
{
|
{
|
||||||
bool vk_ext_provoking_vertex : 1;
|
bool vk_ext_provoking_vertex : 1;
|
||||||
|
bool vk_ext_memory_budget : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
~Context();
|
~Context();
|
||||||
|
|
|
@ -88,6 +88,7 @@ namespace Vulkan
|
||||||
|
|
||||||
VmaAllocationCreateInfo aci = {};
|
VmaAllocationCreateInfo aci = {};
|
||||||
aci.usage = VMA_MEMORY_USAGE_GPU_ONLY;
|
aci.usage = VMA_MEMORY_USAGE_GPU_ONLY;
|
||||||
|
aci.flags = VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT;
|
||||||
|
|
||||||
VkImage image = VK_NULL_HANDLE;
|
VkImage image = VK_NULL_HANDLE;
|
||||||
VmaAllocation allocation = VK_NULL_HANDLE;
|
VmaAllocation allocation = VK_NULL_HANDLE;
|
||||||
|
|
Loading…
Reference in New Issue