summaryrefslogtreecommitdiffstats
path: root/src/video_core/buffer_cache (unfollow)
Commit message (Collapse)AuthorFilesLines
2020-04-29vulkan: Remove unnecessary includesLioncash1-1/+0
Reduces some header churn and reduces rebuilds when some header internals change. While we're at it we can also resolve a missing include in buffer_cache.
2020-04-28{maxwell_3d,buffer_cache}: Implement memory barriers using 3D registersReinUsesLisp1-6/+0
Drop MemoryBarrier from the buffer cache and use Maxwell3D's register WaitForIdle. To implement this on OpenGL we just call glMemoryBarrier with the necessary bits. Vulkan lacks this synchronization primitive, so we set an event and immediately wait for it. This is not a pretty solution, but it's what Vulkan can do without submitting the current command buffer to the queue (which ends up being more expensive on the CPU).
2020-04-22Address Feedback.Fernando Sahmkow1-9/+6
2020-04-22Address Feedback.Fernando Sahmkow1-33/+23
2020-04-22vk_fence_manager: Initial implementationReinUsesLisp1-0/+1
2020-04-22FenceManager: Manage syncpoints and rename fences to semaphores.Fernando Sahmkow1-0/+7
2020-04-22BufferCache: Refactor async managing.Fernando Sahmkow1-7/+24
2020-04-22FenceManager: Implement async buffer cache flushes on High settingsFernando Sahmkow1-0/+50
2020-04-22ThreadManager: Sync async reads on accurate gpu.Fernando Sahmkow1-0/+12
2020-04-22BufferCache: Implement OnCPUWrite and SyncGuestHostFernando Sahmkow2-2/+61
2020-04-16buffer_cache: Return handles instead of pointer to handlesReinUsesLisp1-25/+22
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.
2020-04-09Memory: Correct GCC errors.Fernando Sahmkow1-0/+1
2020-04-08GPUMemoryManager: Improve safety of memory reads.Fernando Sahmkow1-3/+3
2020-04-06Buffer Cache: Use vAddr instead of physical memory.Fernando Sahmkow3-90/+108
2020-01-29buffer_cache: Delay buffer destructionsReinUsesLisp1-1/+4
Delay buffer destruction some extra frames to avoid destroying buffers that are still being used from older frames. This happens on Nvidia's driver with mailbox.
2019-11-20buffer_cache: Remove brace initialized for objects with default constructorReinUsesLisp1-10/+10
2019-11-07buffer_cache: Add missing includes (#3079)Morph1-0/+4
`boost::make_iterator_range` is available when `boost/range/iterator_range.hpp` is included. Also include `boost/icl/interval_map.hpp` and `boost/icl/interval_set.hpp`.
2019-11-02gl_rasterizer: Upload constant buffers with glNamedBufferSubDataReinUsesLisp1-3/+11
Nvidia's OpenGL driver maps gl(Named)BufferSubData with some requirements to a fast. This path has an extra memcpy but updates the buffer without orphaning or waiting for previous calls. It can be seen as a better model for "push constants" that can upload a whole UBO instead of 256 bytes. This path has some requirements established here: http://on-demand.gputechconf.com/gtc/2014/presentations/S4379-opengl-44-scene-rendering-techniques.pdf#page=24 Instead of using the stream buffer, this commits moves constant buffers uploads to calls of glNamedBufferSubData and from my testing it brings a performance improvement. This is disabled when the vendor is not Nvidia since it brings performance regressions.
2019-08-30video_core: Silent miscellaneous warnings (#2820)Rodrigo Locatti2-8/+5
* texture_cache/surface_params: Remove unused local variable * rasterizer_interface: Add missing documentation commentary * maxwell_dma: Remove unused rasterizer reference * video_core/gpu: Sort member declaration order to silent -Wreorder warning * fermi_2d: Remove unused MemoryManager reference * video_core: Silent unused variable warnings * buffer_cache: Silent -Wreorder warnings * kepler_memory: Remove unused MemoryManager reference * gl_texture_cache: Add missing override * buffer_cache: Add missing include * shader/decode: Remove unused variables
2019-08-21Buffer Cache: Adress Feedback.Fernando Sahmkow1-4/+3
2019-08-21Buffer_Cache: Implement flushing.Fernando Sahmkow1-1/+26
2019-08-21Buffer_Cache: Implement barriers.Fernando Sahmkow1-0/+4
2019-08-21Buffer_Cache: Optimize and track written areas.Fernando Sahmkow2-12/+104
2019-08-21BufferCache: Rework mapping caching.Fernando Sahmkow2-49/+76
2019-08-21Buffer_Cache: Fixes and optimizations.Fernando Sahmkow2-68/+38
2019-08-21Video_Core: Implement a new Buffer CacheFernando Sahmkow3-0/+498