summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/vk_buffer_cache.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* vk_stream_buffer/vk_buffer_cache: Avoid halting and use generic cacheReinUsesLisp2020-01-061-0/+143
| | | | | | | | | | | | | | | | 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-122/+0
| | | | This is intended for a follow up commit to avoid circular dependencies.
* core/memory: Migrate over GetPointer()Lioncash2019-11-271-3/+3
| | | | | With all of the interfaces ready for migration, it's trivial to migrate over GetPointer().
* core: Prepare various classes for memory read/write migrationLioncash2019-11-271-1/+3
| | | | | | | | | | 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-2/+2
| | | | | | | | | | | | | | 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.
* video_core/engines: Remove unnecessary inclusions where applicableLioncash2019-04-061-0/+1
| | | | | | Replaces header inclusions with forward declarations where applicable and also removes unused headers within the cpp file. This reduces a few more dependencies on core/memory.h
* video_core: Amend constructor initializer list order where applicableLioncash2019-03-271-2/+2
| | | | | | | Specifies the members in the same order that initialization would take place in. This also silences -Wreorder warnings.
* 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-10/+17
|
* video_core/engines: Remove unnecessary includesLioncash2019-03-061-1/+1
| | | | | | | | | Removes a few unnecessary dependencies on core-related machinery, such as the core.h and memory.h, which reduces the amount of rebuilding necessary if those files change. This also uncovered some indirect dependencies within other source files. This also fixes those.
* vk_buffer_cache: Implement a buffer cacheReinUsesLisp2019-03-011-0/+116
This buffer cache is just like OpenGL's buffer cache with some minor style changes. It uses VKStreamBuffer.