Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | MemoryManager: Reduce the page table size based on last big page address. | Fernando Sahmkow | 2024-02-01 | 1 | -8/+9 |
| | |||||
* | Core: Eliminate core/memory dependancies. | Fernando Sahmkow | 2024-01-19 | 1 | -4/+4 |
| | |||||
* | SMMU: Fix 8Gb layout. | Fernando Sahmkow | 2024-01-19 | 1 | -0/+3 |
| | |||||
* | GPU SMMU: Expand to 34 bits | Fernando Sahmkow | 2024-01-19 | 1 | -7/+11 |
| | |||||
* | SMMU: Initial adaptation to video_core. | Fernando Sahmkow | 2024-01-19 | 1 | -101/+103 |
| | |||||
* | Use spans over guest memory where possible instead of copying data. | Kelebek1 | 2023-07-03 | 1 | -7/+23 |
| | |||||
* | Remove memory allocations in some hot paths | Kelebek1 | 2023-06-22 | 1 | -6/+7 |
| | |||||
* | Use current GPU address when unmapping GPU pages, not the base | Kelebek1 | 2023-06-19 | 1 | -2/+2 |
| | |||||
* | Memory manager: Fix possible softlock | Fernando Sahmkow | 2023-05-04 | 1 | -4/+5 |
| | |||||
* | MemoryManager: Fix race conditions. | Fernando Sahmkow | 2023-04-28 | 1 | -3/+7 |
| | |||||
* | Fixes 'Continous' typo | Max Dunbar | 2023-03-30 | 1 | -17/+17 |
| | |||||
* | memory: rename global memory references to application memory | Liam | 2023-03-24 | 1 | -1/+1 |
| | |||||
* | Revert "MemoryManager: use fastmem directly." | Merry | 2023-01-25 | 1 | -31/+9 |
| | | | | This reverts commit af5ecb0b15d4449f58434e70eed835cf71fc5527. | ||||
* | BufferBase: Don't ignore GPU pages. | Fernando Sahmkow | 2023-01-05 | 1 | -1/+1 |
| | |||||
* | MemoryManager: use fastmem directly. | Fernando Sahmkow | 2023-01-05 | 1 | -9/+31 |
| | |||||
* | video_core: Cache GPU internal writes. | Fernando Sahmkow | 2023-01-05 | 1 | -14/+48 |
| | |||||
* | RasterizerMemory: Add filtering for flushing/invalidation operations. | Fernando Sahmkow | 2023-01-01 | 1 | -27/+33 |
| | |||||
* | MacroHLE: Reduce massive calculations on sizing estimation. | Fernando Sahmkow | 2023-01-01 | 1 | -85/+6 |
| | |||||
* | MacroHLE: Add HLE replacement for base vertex and base instance. | Fernando Sahmkow | 2023-01-01 | 1 | -1/+9 |
| | |||||
* | MacroHLE: Add Index Buffer size estimation. | Fernando Sahmkow | 2023-01-01 | 1 | -3/+50 |
| | |||||
* | video_core:Fix vmm kinds size error | FengChen | 2022-11-06 | 1 | -1/+1 |
| | |||||
* | general: Resolve -Wunused-but-set-variable | Morph | 2022-10-22 | 1 | -2/+2 |
| | |||||
* | video_core: Implement memory manager page kind | FengChen | 2022-10-17 | 1 | -10/+51 |
| | |||||
* | General: Fix clang format. | Fernando Sahmkow | 2022-10-06 | 1 | -1/+0 |
| | |||||
* | Buffer Cache: Deduce vertex array limit from memory layout when limit is the highest possible. | Fernando Sahmkow | 2022-10-06 | 1 | -1/+1 |
| | |||||
* | DMA & InlineToMemory Engines Rework. | bunnei | 2022-10-06 | 1 | -0/+91 |
| | |||||
* | Memory Manager: ensure safety of GPU to CPU address. | Fernando Sahmkow | 2022-10-06 | 1 | -0/+3 |
| | |||||
* | MemoryManager: Fix errors popping out. | Fernando Sahmkow | 2022-10-06 | 1 | -4/+8 |
| | |||||
* | MemoryManager: Finish up the initial implementation. | Fernando Sahmkow | 2022-10-06 | 1 | -46/+131 |
| | |||||
* | MemoryManager: initial multi paging system implementation. | Fernando Sahmkow | 2022-10-06 | 1 | -173/+263 |
| | |||||
* | Texture cache: Fix the remaining issues with memory mnagement and unmapping. | Fernando Sahmkow | 2022-10-06 | 1 | -1/+10 |
| | |||||
* | Refactor VideoCore to use AS sepparate from Channel. | Fernando Sahmkow | 2022-10-06 | 1 | -1/+4 |
| | |||||
* | NVDRV: Remake ASGPU | Fernando Sahmkow | 2022-10-06 | 1 | -3/+7 |
| | |||||
* | MemoryManager: Temporary Fix for NVDEC. | Fernando Sahmkow | 2022-10-06 | 1 | -1/+1 |
| | |||||
* | VideoCore: Update MemoryManager | Fernando Sahmkow | 2022-10-06 | 1 | -92/+55 |
| | |||||
* | VideoCore: implement channels on gpu caches. | Fernando Sahmkow | 2022-10-06 | 1 | -5/+0 |
| | |||||
* | code: dodge PAGE_SIZE #define | Kyle Kienapfel | 2022-08-20 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | | | | | | | Some header files, specifically for OSX and Musl libc define PAGE_SIZE to be a number This is great except in yuzu we're using PAGE_SIZE as a variable Specific example `static constexpr u64 PAGE_SIZE = u64(1) << PAGE_BITS;` PAGE_SIZE PAGE_BITS PAGE_MASK are all similar variables. Simply deleted the underscores, and then added YUZU_ prefix Might be worth noting that there are multiple uses in different classes/namespaces This list may not be exhaustive Core::Memory 12 bits (4096) QueryCacheBase 12 bits ShaderCache 14 bits (16384) TextureCache 20 bits (1048576, or 1MB) Fixes #8779 | ||||
* | common: Change semantics of UNREACHABLE to unconditionally crash | Liam | 2022-06-14 | 1 | -3/+3 |
| | |||||
* | general: Convert source file copyright comments over to SPDX | Morph | 2022-04-23 | 1 | -3/+2 |
| | | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later. | ||||
* | video_core: Reduce unused includes | ameerj | 2022-03-19 | 1 | -1/+0 |
| | |||||
* | video_core/memory_manager: Fixes for sparse memory management | ameerj | 2021-12-31 | 1 | -11/+11 |
| | |||||
* | video_core/memory_manager: Deduplicate Read/WriteBlock | ameerj | 2021-12-31 | 1 | -47/+27 |
| | |||||
* | video_core/memory_manager: Add missing <algorithm> include | Morph | 2021-09-11 | 1 | -0/+2 |
| | |||||
* | GPU_MemoryManger: Fix GetSubmappedRange. | Fernando Sahmkow | 2021-08-19 | 1 | -0/+1 |
| | |||||
* | shader: Address feedback | FernandoS27 | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Implement TLD | FernandoS27 | 2021-07-23 | 1 | -2/+1 |
| | |||||
* | Texture Cache: Address feedback. | Fernando Sahmkow | 2021-07-04 | 1 | -1/+0 |
| | |||||
* | Texture Cache: Improve accuracy of sparse texture detection. | Fernando Sahmkow | 2021-07-04 | 1 | -5/+100 |
| | |||||
* | Texture Cache: Initial Implementation of Sparse Textures. | Fernando Sahmkow | 2021-07-04 | 1 | -1/+6 |
| | |||||
* | buffer_cache: Simplify uniform disabling logic | ameerj | 2021-06-01 | 1 | -0/+3 |
| | |||||
* | hle: kernel: Rename Process to KProcess. | bunnei | 2021-05-06 | 1 | -1/+1 |
| | |||||
* | hle: kernel: Migrate PageHeap/PageTable to KPageHeap/KPageTable. | bunnei | 2021-02-19 | 1 | -1/+1 |
| | |||||
* | gpu: Report renderer errors with exceptions | ReinUsesLisp | 2021-02-13 | 1 | -2/+2 |
| | | | | | | Instead of using a two step initialization to report errors, initialize the GPU renderer and rasterizer on the constructor and report errors through std::runtime_error. | ||||
* | Merge pull request #5795 from ReinUsesLisp/bytes-to-map-end | bunnei | 2021-01-30 | 1 | -2/+21 |
|\ | | | | | video_core/memory_manager: Add BytesToMapEnd | ||||
| * | video_core/memory_manager: Add BytesToMapEnd | ReinUsesLisp | 2021-01-22 | 1 | -2/+21 |
| | | | | | | | | | | Track map address sizes in a flat ordered map and add a method to query the number of bytes until the end of a map in a given address. | ||||
* | | video_core/memory_manager: Remove unused CopyBlockUnsafe | ReinUsesLisp | 2021-01-21 | 1 | -7/+0 |
| | | | | | | | | This function was not being used. | ||||
* | | video_core/memory_manager: Flush destination buffer on CopyBlock | ReinUsesLisp | 2021-01-21 | 1 | -0/+4 |
| | | | | | | | | | | | | | | | | | | | | | | When we copy into a buffer, it might contain data modified from the GPU on the same pages. Because of this, we have to flush the contents before writing new data. An alternative approach would be to write the data in place, but games can also write data in other ways, invalidating our contents. Fixes geometry in Zombie Panic in Wonderland DX. | ||||
* | | video_core/memory_manager: Add GPU address based flush method | ReinUsesLisp | 2021-01-21 | 1 | -0/+15 |
|/ | | | | Allow flushing rasterizer contents based on a GPU address. | ||||
* | video_core: Rewrite the texture cache | ReinUsesLisp | 2020-12-30 | 1 | -1/+4 |
| | | | | | | | | | | | | | | The current texture cache has several points that hurt maintainability and performance. It's easy to break unrelated parts of the cache when doing minor changes. The cache can easily forget valuable information about the cached textures by CPU writes or simply by its normal usage.The current texture cache has several points that hurt maintainability and performance. It's easy to break unrelated parts of the cache when doing minor changes. The cache can easily forget valuable information about the cached textures by CPU writes or simply by its normal usage. This commit aims to address those issues. | ||||
* | video_core: NVDEC Implementation | ameerj | 2020-10-27 | 1 | -2/+10 |
| | | | | | | | | | | | | | | This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library. The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data. To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library. Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header. Async GPU is not properly implemented at the moment. Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com> | ||||
* | General: Make use of std::nullopt where applicable | Lioncash | 2020-09-22 | 1 | -3/+3 |
| | | | | | | | | Allows some implementations to avoid completely zeroing out the internal buffer of the optional, and instead only set the validity byte within the structure. This also makes it consistent how we return empty optionals. | ||||
* | Merge pull request #4574 from lioncash/const-fn | bunnei | 2020-08-25 | 1 | -2/+2 |
|\ | | | | | memory_manager: Mark IsGranularRange() as a const member function | ||||
| * | memory_manager: Mark IsGranularRange() as a const member function | Lioncash | 2020-08-24 | 1 | -2/+2 |
| | | | | | | | | This doesn't modify internal member state, so it can be marked as const. | ||||
* | | video_core: Initialize renderer with a GPU | ReinUsesLisp | 2020-08-22 | 1 | -4/+8 |
|/ | | | | | Add an extra step in GPU initialization to be able to initialize render backends with a valid GPU instance. | ||||
* | hle: nvdrv: Rewrite of GPU memory management. | bunnei | 2020-07-26 | 1 | -394/+138 |
| | |||||
* | memory_manager: Eliminate variable shadowing | Lioncash | 2020-06-20 | 1 | -18/+22 |
| | | | | | | | | Renames some variables to prevent ones in inner scopes from shadowing outer-scoped variables. The Copy* functions have no shadowing, but we rename them anyways to remain consistent with the other functions. | ||||
* | kernel: memory: Improve implementation of device shared memory. (#3707) | bunnei | 2020-04-23 | 1 | -13/+5 |
| | | | | | | | * kernel: memory: Improve implementation of device shared memory. * fixup! kernel: memory: Improve implementation of device shared memory. * fixup! kernel: memory: Improve implementation of device shared memory. | ||||
* | video_core: memory_manager: Updates for Common::PageTable changes. | bunnei | 2020-04-17 | 1 | -66/+33 |
| | |||||
* | Memory: Correct GCC errors. | Fernando Sahmkow | 2020-04-09 | 1 | -2/+2 |
| | |||||
* | GPUMemoryManager: Improve safety of memory reads. | Fernando Sahmkow | 2020-04-08 | 1 | -48/+43 |
| | |||||
* | GPU: Setup Flush/Invalidate to use VAddr instead of CacheAddr | Fernando Sahmkow | 2020-04-06 | 1 | -5/+5 |
| | |||||
* | video_core: memory_manager: Flush/invalidate asynchronously on Unmap. | bunnei | 2020-02-20 | 1 | -1/+10 |
| | | | | - Minor perf improvement. | ||||
* | Revert "video_core: memory_manager: Use GPU interface for cache functions." | bunnei | 2020-02-15 | 1 | -7/+7 |
| | |||||
* | video_core: memory_manager: Use GPU interface for cache functions. | bunnei | 2020-02-08 | 1 | -7/+7 |
| | |||||
* | core/memory: Migrate over GetPointer() | Lioncash | 2019-11-27 | 1 | -2/+2 |
| | | | | | With all of the interfaces ready for migration, it's trivial to migrate over GetPointer(). | ||||
* | prefer system reference over global accessor | Michael Scire | 2019-07-09 | 1 | -7/+5 |
| | |||||
* | Prevent merging of device mapped memory blocks. | Michael Scire | 2019-07-09 | 1 | -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. | ||||
* | texture_cache: Handle uncontinuous surfaces. | Fernando Sahmkow | 2019-06-21 | 1 | -2/+3 |
| | |||||
* | Change texture_cache chaching from GPUAddr to CacheAddr | Fernando Sahmkow | 2019-06-21 | 1 | -1/+1 |
| | | | | | This also reverses the changes to make invalidation and flushing through the GPU address. | ||||
* | Deglobalize Memory Manager on texture cahe and Implement Invalidation and Flushing using GPUVAddr | Fernando Sahmkow | 2019-06-21 | 1 | -1/+1 |
| | |||||
* | video_core/memory_manager: Mark IsBlockContinuous() as a const member function | Lioncash | 2019-05-10 | 1 | -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. | ||||
* | video_core/memory_manager: Default the destructor within the cpp file | Lioncash | 2019-05-10 | 1 | -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. | ||||
* | make ReadBlockunsafe and WriteBlockunsafe, ignore invalid pages. | Fernando Sahmkow | 2019-04-20 | 1 | -4/+12 |
| | |||||
* | Implement IsBlockContinous | Fernando Sahmkow | 2019-04-17 | 1 | -0/+8 |
| | | | | | This detects when a GPU Memory Block is not continous within host cpu memory. | ||||
* | Document unsafe versions and add BlockCopyUnsafe | Fernando Sahmkow | 2019-04-16 | 1 | -5/+13 |
| | |||||
* | Use ReadBlockUnsafe on TIC and TSC reading | Fernando Sahmkow | 2019-04-16 | 1 | -0/+2 |
| | | | | | Use ReadBlockUnsafe on TIC and TSC reading as memory is never flushed from host GPU there. | ||||
* | GPU MemoryManager: Implement ReadBlockUnsafe and WriteBlockUnsafe | Fernando Sahmkow | 2019-04-16 | 1 | -0/+32 |
| | |||||
* | memory_manager: Improved implementation of read/write/copy block. | bunnei | 2019-04-06 | 1 | -10/+77 |
| | | | | | - Fixes graphical issues with Chocobo's Mystery Dungeon EVERY BUDDY! - Fixes a crash with Mario Tennis Aces | ||||
* | video_core/memory_manager: Make Read() a const qualified member function | Lioncash | 2019-04-06 | 1 | -5/+5 |
| | | | | | Given this doesn't actually alter internal state, this can be made a const member function. | ||||
* | video_core/memory_manager: Make ReadBlock() a const qualifier member function | Lioncash | 2019-04-06 | 1 | -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. | ||||
* | video_core/memory_manager: Add a const qualified variant of GetPointer() | Lioncash | 2019-04-06 | 1 | -2/+16 |
| | | | | Allows retrieving read-only pointers from a const context externally. | ||||
* | video_core/memory_manager: Make FindFreeRegion() a const member function | Lioncash | 2019-04-06 | 1 | -9/+10 |
| | | | | | This doesn't modify internal state, so it can be made a const member function. | ||||
* | video_core/memory_manager: Make GpuToCpuAddress() a const member function | Lioncash | 2019-04-06 | 1 | -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. | ||||
* | memory_manager: Cleanup FindFreeRegion. | bunnei | 2019-03-21 | 1 | -10/+4 |
| | |||||
* | memory_manager: Use Common::AlignUp in public interface as needed. | bunnei | 2019-03-21 | 1 | -11/+22 |
| | |||||
* | memory_manager: Bug fixes and further cleanup. | bunnei | 2019-03-21 | 1 | -66/+65 |
| | |||||
* | memory_manager: Add protections for invalid GPU addresses. | bunnei | 2019-03-21 | 1 | -15/+35 |
| | | | | - Avoid a crash in Xenoblade Chronicles 2. | ||||
* | gpu: Rewrite virtual memory manager using PageTable. | bunnei | 2019-03-21 | 1 | -134/+338 |
| | |||||
* | video_core: Refactor to use MemoryManager interface for all memory access. | bunnei | 2019-03-16 | 1 | -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 | ||||
* | memory_manager: Check for reserved page status | ReinUsesLisp | 2019-02-03 | 1 | -1/+2 |
| | |||||
* | memory_manager: Do not allow 0 to be a valid GPUVAddr. | bunnei | 2018-11-23 | 1 | -0/+7 |
| | | | | - Fixes a bug with Undertale using 0 for a render target. | ||||
* | memory_manager: Do not MapBufferEx over already in use memory. | bunnei | 2018-11-01 | 1 | -27/+48 |
| | | | | - This fixes rendering when changing areas in Super Mario Odyssey. | ||||
* | global: Use std::optional instead of boost::optional (#1578) | Frederic L | 2018-10-30 | 1 | -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 | ||||
* | memory_manager: Add a method for querying the end of a mapped GPU region. | bunnei | 2018-10-16 | 1 | -0/+10 |
| | |||||
* | video_core/memory_manager: Replace a loop with std::array's fill() function in PageSlot() | Lioncash | 2018-07-24 | 1 | -3/+1 |
| | | | | | We already have a function that does what this code was doing, so let's use that instead. | ||||
* | video_core/memory_manager: Avoid repeated unnecessary page slot lookups | Lioncash | 2018-07-24 | 1 | -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. | ||||
* | GPU: Allow GpuToCpuAddress to return boost::none for unmapped addresses. | Subv | 2018-07-02 | 1 | -2/+2 |
| | |||||
* | GPU: Implemented nvhost-as-gpu's UnmapBuffer ioctl. | Subv | 2018-05-20 | 1 | -0/+19 |
| | | | | It removes a mapping previously created with the MapBufferEx ioctl. | ||||
* | memory_manager: Add implement CpuToGpuAddress. | bunnei | 2018-04-24 | 1 | -0/+17 |
| | |||||
* | memory_manager: Make GpuToCpuAddress return an optional. | bunnei | 2018-04-24 | 1 | -1/+6 |
| | |||||
* | memory_manager: Use GPUVAdddr, not PAddr, for GPU addresses. | bunnei | 2018-04-24 | 1 | -36/+36 |
| | |||||
* | GPU: Make the GPU virtual memory manager use 16 page bits and 10 page table bits. | Subv | 2018-04-23 | 1 | -33/+20 |
| | | | | Also removed some dead code and added memory map consistency asserts. | ||||
* | Make a GPU class in VideoCore to contain the GPU state. | Subv | 2018-02-12 | 1 | -0/+110 |
Also moved the GPU MemoryManager class to video_core since it makes more sense for it to be there. |