summaryrefslogtreecommitdiffstats
path: root/src/video_core/memory_manager.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2019-07-09prefer system reference over global accessorMichael Scire1-7/+5
2019-07-09Prevent merging of device mapped memory blocks.Michael Scire1-1/+23
This sets the DeviceMapped attribute for GPU-mapped memory blocks, and prevents merging device mapped blocks. This prevents memory mapped from the gpu from having its backing address changed by block coalesce.
2019-06-21texture_cache: Handle uncontinuous surfaces.Fernando Sahmkow1-2/+3
2019-06-21Change texture_cache chaching from GPUAddr to CacheAddrFernando Sahmkow1-1/+1
This also reverses the changes to make invalidation and flushing through the GPU address.
2019-06-21Deglobalize Memory Manager on texture cahe and Implement Invalidation and Flushing using GPUVAddrFernando Sahmkow1-1/+1
2019-05-10video_core/memory_manager: Mark IsBlockContinuous() as a const member functionLioncash1-2/+2
Corrects the typo in its name and marks the function as a const member function, given it doesn't actually modify memory manager state.
2019-05-10video_core/memory_manager: Default the destructor within the cpp fileLioncash1-0/+2
Makes the class less surprising when it comes to forward declaring the type, and also prevents inlining the destruction code of the class, given it contains non-trivial types.
2019-04-20make ReadBlockunsafe and WriteBlockunsafe, ignore invalid pages.Fernando Sahmkow1-4/+12
2019-04-17Implement IsBlockContinousFernando Sahmkow1-0/+8
This detects when a GPU Memory Block is not continous within host cpu memory.
2019-04-16Document unsafe versions and add BlockCopyUnsafeFernando Sahmkow1-5/+13
2019-04-16Use ReadBlockUnsafe on TIC and TSC readingFernando Sahmkow1-0/+2
Use ReadBlockUnsafe on TIC and TSC reading as memory is never flushed from host GPU there.
2019-04-16GPU MemoryManager: Implement ReadBlockUnsafe and WriteBlockUnsafeFernando Sahmkow1-0/+32
2019-04-06memory_manager: Improved implementation of read/write/copy block.bunnei1-10/+77
- Fixes graphical issues with Chocobo's Mystery Dungeon EVERY BUDDY! - Fixes a crash with Mario Tennis Aces
2019-04-06video_core/memory_manager: Make Read() a const qualified member functionLioncash1-5/+5
Given this doesn't actually alter internal state, this can be made a const member function.
2019-04-06video_core/memory_manager: Make ReadBlock() a const qualifier member functionLioncash1-1/+1
Now, since we have a const qualified variant of GetPointer(), we can put it to use in ReadBlock() to retrieve the source pointer that is passed into memcpy. Now block reading may be done from a const context.
2019-04-06video_core/memory_manager: Add a const qualified variant of GetPointer()Lioncash1-2/+16
Allows retrieving read-only pointers from a const context externally.
2019-04-06video_core/memory_manager: Make FindFreeRegion() a const member functionLioncash1-9/+10
This doesn't modify internal state, so it can be made a const member function.
2019-04-06video_core/memory_manager: Make GpuToCpuAddress() a const member functionLioncash1-2/+2
This doesn't modify any internal state, so it can be made a const member function to allow its use in const contexts.
2019-03-21memory_manager: Cleanup FindFreeRegion.bunnei1-10/+4
2019-03-21memory_manager: Use Common::AlignUp in public interface as needed.bunnei1-11/+22
2019-03-21memory_manager: Bug fixes and further cleanup.bunnei1-66/+65
2019-03-21memory_manager: Add protections for invalid GPU addresses.bunnei1-15/+35
- Avoid a crash in Xenoblade Chronicles 2.
2019-03-21gpu: Rewrite virtual memory manager using PageTable.bunnei1-134/+338
2019-03-16video_core: Refactor to use MemoryManager interface for all memory access.bunnei1-9/+46
# Conflicts: # src/video_core/engines/kepler_memory.cpp # src/video_core/engines/maxwell_3d.cpp # src/video_core/morton.cpp # src/video_core/morton.h # src/video_core/renderer_opengl/gl_global_cache.cpp # src/video_core/renderer_opengl/gl_global_cache.h # src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
2019-02-03memory_manager: Check for reserved page statusReinUsesLisp1-1/+2
2018-11-23memory_manager: Do not allow 0 to be a valid GPUVAddr.bunnei1-0/+7
- Fixes a bug with Undertale using 0 for a render target.
2018-11-01memory_manager: Do not MapBufferEx over already in use memory.bunnei1-27/+48
- This fixes rendering when changing areas in Super Mario Odyssey.
2018-10-30global: Use std::optional instead of boost::optional (#1578)Frederic L1-4/+4
* get rid of boost::optional * Remove optional references * Use std::reference_wrapper for optional references * Fix clang format * Fix clang format part 2 * Adressed feedback * Fix clang format and MacOS build
2018-10-16memory_manager: Add a method for querying the end of a mapped GPU region.bunnei1-0/+10
2018-07-24video_core/memory_manager: Replace a loop with std::array's fill() function in PageSlot()Lioncash1-3/+1
We already have a function that does what this code was doing, so let's use that instead.
2018-07-24video_core/memory_manager: Avoid repeated unnecessary page slot lookupsLioncash1-11/+21
We don't need to keep calling the same function over and over again in a loop, especially when the behavior is slightly non-trivial. We can just keep a reference to the looked up location and do all the checking and assignments based off it instead.
2018-07-02GPU: Allow GpuToCpuAddress to return boost::none for unmapped addresses.Subv1-2/+2
2018-05-20GPU: Implemented nvhost-as-gpu's UnmapBuffer ioctl.Subv1-0/+19
It removes a mapping previously created with the MapBufferEx ioctl.
2018-04-24memory_manager: Add implement CpuToGpuAddress.bunnei1-0/+17
2018-04-24memory_manager: Make GpuToCpuAddress return an optional.bunnei1-1/+6
2018-04-24memory_manager: Use GPUVAdddr, not PAddr, for GPU addresses.bunnei1-36/+36
2018-04-23GPU: Make the GPU virtual memory manager use 16 page bits and 10 page table bits.Subv1-33/+20
Also removed some dead code and added memory map consistency asserts.
2018-02-12Make a GPU class in VideoCore to contain the GPU state.Subv1-5/+3
Also moved the GPU MemoryManager class to video_core since it makes more sense for it to be there.
2018-02-08nvdrv: Add MemoryManager class to track GPU memory.bunnei1-0/+112