summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/vk_resource_manager.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* vk_reosurce_manager: Add assert for releasing fencesReinUsesLisp2019-12-191-0/+1
| | | | | Notify the programmer when a request to release a fence is invalid because the fence is already free.
* vk_resource_manager: Implement VKFenceWatch move constructorReinUsesLisp2019-12-191-0/+24
| | | | | | This allows us to put VKFenceWatch inside a std::vector without storing it in heap. On move we have to signal the fences where the new protected resource is, adding some overhead.
* vk_device: Add entry to catch device lossesReinUsesLisp2019-12-191-1/+10
| | | | | | | VK_NV_device_diagnostic_checkpoints allows us to push data to a Vulkan queue and then query it even after a device loss. This allows us to push the current pipeline object and see what was the call that killed the device.
* video_core: Add missing override specifiersLioncash2019-03-271-1/+1
| | | | | | Ensures that the signatures will always match with the base class. Also silences a few compilation warnings.
* vk_resource_manager: Minor VKFenceWatch changesReinUsesLisp2019-02-241-6/+6
|
* vk_resource_manager: Implement a command buffer pool with VKFencedPoolReinUsesLisp2019-02-141-0/+52
|
* vk_resource_manager: Add VKFencedPool interfaceReinUsesLisp2019-02-141-0/+51
| | | | | | | Handles a pool of resources protected by fences. Manages resource overflow allocating more resources. This class is intended to be used through inheritance.
* vk_resource_manager: Implement VKResourceManager and fence allocatorReinUsesLisp2019-02-141-0/+62
| | | | | CommitFence iterates a pool of fences until one is found. If all fences are being used at the same time, allocate more.
* vk_resource_manager: Implement VKFenceWatchReinUsesLisp2019-02-141-0/+38
| | | | | | A fence watch is used to keep track of the usage of a fence and protect a resource or set of resources without having to inherit from their handlers.
* vk_resource_manager: Implement VKFenceReinUsesLisp2019-02-141-0/+68
| | | | | | | | | | Fences take ownership of objects, protecting them from GPU-side or driver-side concurrent access. They must be commited from the resource manager. Their usage flow is: commit the fence from the resource manager, protect resources with it and use them, send the fence to an execution queue and Wait for it if needed and then call Release. Used resources will automatically be signaled when they are free to be reused.
* vk_resource_manager: Add VKResource interfaceReinUsesLisp2019-02-141-0/+14
VKResource is an interface that gets signaled by a fence when it is free to be reused.