vkd3d-proton/libs/vkd3d
Hans-Kristian Arntzen e0451bb541 vkd3d: Handle fallbacks properly in suballocator.
With BAR budgets, what will happen is that
- Small allocation is requested
- A new chunk is requested
- try_suballocate_memory will end up calling allocate_memory, which
  allocates a fallback memory type
- Subsequent small allocators will always end up allocating a new
  fallback memory block, never reusing existing blocks.
- System memory is rapidly exhausted once apps start hitting against
  budget.

The fix is to add flags which explicitly do not attempt to fallback
allocate. This makes it possible to handle fallbacks at the appropriate
level in try_suballocate_memory instead.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-09-16 16:10:57 +02:00
..
shaders meta: Add fs_copy_uint path. 2021-05-05 00:11:10 +02:00
acceleration_structure.c vkd3d: Introduce vkd3d_internal_get_vk_format. 2021-06-24 12:55:17 +02:00
bundle.c vkd3d: Add bundle allocator and command list implementation. 2021-04-14 16:24:55 +02:00
cache.c vkd3d: Workaround huge memory overhead for individual VkPipelineCaches. 2021-09-07 13:21:54 +02:00
command.c vkd3d: Refactor VkDeviceMemory allocation to keep track of type/size. 2021-09-16 16:10:57 +02:00
command_list_profiled.h vkd3d: Refactor SetName implementation 2021-02-25 21:51:43 +01:00
command_list_vkd3d_ext.c vkd3d: Implement new interfaces required for DX12 DLSS support. 2021-08-27 11:37:15 +02:00
debug_ring.c vkd3d: Refactor VkDeviceMemory allocation to keep track of type/size. 2021-09-16 16:10:57 +02:00
descriptor_debug.c vkd3d: Refactor VkDeviceMemory allocation to keep track of type/size. 2021-09-16 16:10:57 +02:00
device.c vkd3d: Consider CPU availibility when selecting memory types. 2021-09-16 15:35:57 +02:00
device_profiled.h vkd3d: Refactor SetName implementation 2021-02-25 21:51:43 +01:00
device_vkd3d_ext.c vkd3d: Fix MSVC build. 2021-09-02 16:56:39 +02:00
heap.c vkd3d: Refactor VkDeviceMemory allocation to keep track of type/size. 2021-09-16 16:10:57 +02:00
memory.c vkd3d: Handle fallbacks properly in suballocator. 2021-09-16 16:10:57 +02:00
meson.build vkd3d: Implement new interfaces required for DX12 DLSS support. 2021-08-27 11:37:15 +02:00
meta.c vkd3d: Handle separate DS layout for destination copies. 2021-07-07 15:31:52 +02:00
platform.c meta: Add missing newlines to end of files 2020-11-05 17:16:57 +01:00
raytracing_pipeline.c vkd3d: Validate shader meta against features. 2021-07-28 15:28:19 +02:00
renderdoc.c meta: Add missing newlines to end of files 2020-11-05 17:16:57 +01:00
resource.c vkd3d: Fix silly typo in global mask. 2021-09-16 16:10:57 +02:00
state.c vkd3d: Workaround huge memory overhead for individual VkPipelineCaches. 2021-09-07 13:21:54 +02:00
swapchain.c vkd3d: Reimplement frame latency event as a semaphore. 2021-08-26 14:21:38 +02:00
utils.c vkd3d: Add 12_2 to list of valid feature levels. 2021-09-14 21:18:29 +02:00
va_map.c vkd3d: Fix some const warnings on MSVC. 2021-03-10 10:48:01 +00:00
vkd3d_descriptor_debug.h vkd3d: Rewrite descriptor QA. 2021-05-26 17:26:01 +02:00
vkd3d_main.c vkd3d: Remove type/next from vkd3d device/instance structures 2021-04-20 18:25:41 +02:00
vkd3d_private.h vkd3d: Handle fallbacks properly in suballocator. 2021-09-16 16:10:57 +02:00
vkd3d_renderdoc.h include: Remove DECLSPEC_HIDDEN from headers 2020-10-05 10:44:10 +02:00
vkd3d_shaders.h meta: Add fs_copy_uint path. 2021-05-05 00:11:10 +02:00
vulkan_procs.h vkd3d: Fix MSVC build. 2021-09-02 16:56:39 +02:00