summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/vk_buffer_cache.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* buffer_cache: Return handles instead of pointer to handlesReinUsesLisp2020-04-161-5/+5
| | | | | | | | | | | The original idea of returning pointers is that handles can be moved. The problem is that the implementation didn't take that in mind and made everything harder to work with. This commit drops pointer to handles and returns the handles themselves. While it is still true that handles can be invalidated, this way we get an old handle instead of a dangling pointer. This problem can be solved in the future with sparse buffers.
* renderer_vulkan: Drop Vulkan-HppReinUsesLisp2020-04-111-6/+6
|
* Buffer Cache: Use vAddr instead of physical memory.Fernando Sahmkow2020-04-061-2/+2
|
* vk_stream_buffer/vk_buffer_cache: Avoid halting and use generic cacheReinUsesLisp2020-01-061-0/+73
| | | | | | | | | | | | | | | | The stream buffer before this commit once it was full (no more bytes to write before looping) waiting for all previous operations to finish. This was a temporary solution and had a noticeable performance penalty in performance (from what a profiler showed). To avoid this mark with fences usages of the stream buffer and once it loops wait for them to be signaled. On average this will never wait. Each fence knows where its usage finishes, resulting in a non-paged stream buffer. On the other side, the buffer cache is reimplemented using the generic buffer cache. It makes use of the staging buffer pool and the new stream buffer.
* vk_buffer_cache: Temporarily remove buffer cacheReinUsesLisp2020-01-061-104/+0
| | | | This is intended for a follow up commit to avoid circular dependencies.
* core: Prepare various classes for memory read/write migrationLioncash2019-11-271-1/+6
| | | | | | | | | | Amends a few interfaces to be able to handle the migration over to the new Memory class by passing the class by reference as a function parameter where necessary. Notably, within the filesystem services, this eliminates two ReadBlock() calls by using the helper functions of HLERequestContext to do that for us.
* vk_scheduler: Drop execution context in favor of viewsReinUsesLisp2019-07-071-1/+1
| | | | | | | | | | | | | | Instead of passing by copy an execution context through out the whole Vulkan call hierarchy, use a command buffer view and fence view approach. This internally dereferences the command buffer or fence forcing the user to be unable to use an outdated version of it on normal usage. It is still possible to keep store an outdated if it is casted to VKFence& or vk::CommandBuffer. While changing this file, add an extra parameter for Flush and Finish to allow releasing the fence from this calls.
* Rasterizer Cache: Use a temporal storage for Surfaces loading/flushing.Fernando Sahmkow2019-04-211-1/+0
| | | | | This PR should heavily reduce memory usage since temporal buffers are no longer stored per Surface but instead managed by the Rasterizer Cache.
* RasterizerCache Redesign: Flush Fernando Sahmkow2019-04-201-2/+4
| | | | | | flushing is now responsability of children caches instead of the cache object. This change will allow the specific cache to pass extra parameters on flushing and will allow more flexibility.
* gpu: Move GPUVAddr definition to common_types.bunnei2019-03-211-2/+1
|
* gpu: Use host address for caching instead of guest address.bunnei2019-03-151-7/+24
|
* vk_buffer_cache: Fix clang-formatReinUsesLisp2019-03-021-3/+3
|
* vk_buffer_cache: Implement a buffer cacheReinUsesLisp2019-03-011-0/+87
This buffer cache is just like OpenGL's buffer cache with some minor style changes. It uses VKStreamBuffer.