aboutsummaryrefslogtreecommitdiff
path: root/src/core/memory.h
Commit message (Collapse)AuthorAgeFilesLines
* Gpu buffer readback to cpu. Fixing visible glitches such as missing ↵néo Luigi3 days1-0/+6
| | | | | | collision on some object, but can extend to more. Assisted-by: Claude Opus 5.5 (debugging & implementation)
* nx2: frame-locked input replay and quieter logsTakoroka7 days1-0/+3
| | | | | | | | | | | EDEN_NX2_KEY_RECORD records keyboard transitions as "f<frame>:code" against a global count of guest presents; EDEN_NX2_KEY_SCRIPT replays them on the same frames (or by seconds, as before), so a played session reproduces exactly. Debug aids: the PC/LR/SP of the first unmapped reads, NSO load addresses, EDEN_NX2_IPC_SUMMARY (request counts every 5 s), EDEN_NX2_FORCE_LOD0. Unmapped-access logging is rate limited and the per-draw/semaphore spam is demoted, so long sessions stay under the log size cap.
* Revert "[core/memory] Remove defered heap allocation on Linux." (#2974)PavelBARABANOV2025-11-091-0/+2
| | | | | | | | | Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2974 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: PavelBARABANOV <pavelbarabanov94@gmail.com> Co-committed-by: PavelBARABANOV <pavelbarabanov94@gmail.com>
* [core/memory] Remove defered heap allocation on Linux. (#2587)lizzie2025-10-311-2/+3
| | | | | | | | | | Authored-by: weakboson <weakboson@eden-emu.dev> Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2587 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* Revert "[heap_tracker] Use ankerl map instead of rb tree (#249)" (#382)crueter2025-09-041-0/+5
| | | | | | | | | | | | This reverts commit c9a3baab5d5ba524778492027ef8961da947df2d. this commit caused issues in ender magnolia or something, need to make sure I didn't mess up the revert Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/382 Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev> Reviewed-by: Lizzie <lizzie@eden-emu.dev> Reviewed-by: MaranBr <maranbr@outlook.com>
* [heap_tracker] Use ankerl map instead of rb tree (#249)lizzie2025-08-271-5/+0
| | | | | | | | Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/249 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* Port changes from Early Accessdarktux2025-04-041-0/+2
|
* Core: Invert guest memory depandancyFernando Sahmkow2024-01-181-0/+6
|
* Core: Clang format and other small issues.Fernando Sahmkow2024-01-181-1/+1
|
* SMMU: Add Android compatibilityFernando Sahmkow2024-01-181-2/+2
|
* SMMU: Initial adaptation to video_core.Fernando Sahmkow2024-01-181-205/+0
|
* Merge pull request #12543 from FernandoS27/stop-liking-posts-from-ur-friends-exliamwhite2024-01-011-1/+2
|\ | | | | VideoCore: A few fixes to DMA and swapchain
| * Vulkan: Only recreate swapchain if the frame is bigger than the swap image.Fernando Sahmkow2023-12-311-1/+2
| |
| * MaxwellDMA: Don't flush the outputs of a dma copy.Fernando Sahmkow2023-12-311-1/+1
| |
* | core: track separate heap allocation for linuxLiam2023-12-251-2/+5
|/
* core: refactor emulated cpu core activationLiam2023-12-041-1/+1
|
* Address more review commentsGPUCode2023-11-251-0/+11
|
* arm: Implement native code execution backendLiam2023-11-251-0/+1
|
* core: Respect memory permissions in MapGPUCode2023-11-251-2/+4
|
* general: fix apple clang buildLiam2023-08-091-60/+65
|
* memory: minimize dependency on processLiam2023-07-221-7/+6
|
* Use spans over guest memory where possible instead of copying data.Kelebek12023-07-021-0/+212
|
* Memory Tracking: Optimize tracking to only use atomic writes when contested ↵Fernando Sahmkow2023-06-281-1/+5
| | | | with the host GPU
* memory: rename global memory references to application memoryLiam2023-03-231-58/+6
|
* kernel: use KTypedAddress for addressesLiam2023-03-221-41/+47
|
* kernel: implement FlushProcessDataCacheLiam2022-11-121-0/+34
|
* MemoryManager: Fix errors popping out.Fernando Sahmkow2022-10-061-0/+1
|
* code: dodge PAGE_SIZE #defineKyle Kienapfel2022-08-191-3/+3
| | | | | | | | | | | | | | | | | | | | | 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
* chore: make yuzu REUSE compliantAndrea Pappacoda2022-07-271-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to b2eb10382941bef0914f4a0a4685b9033440aa9f
* Project AndioKelebek12022-07-221-0/+13
|
* core/debugger: memory breakpoint supportLiam2022-06-161-0/+11
|
* core/debugger: Implement new GDB stub debuggerLiam2022-06-011-0/+11
|
* memory: Address lioncash's reviewyzct123452021-08-051-1/+1
|
* memory: Clean up codeyzct123452021-08-051-100/+4
|
* hle: kernel: Use host memory allocations for KSlabMemory.bunnei2021-05-201-9/+0
| | | | - There are some issues with the current workaround, we will just use host memory until we have a complete kernel memory implementation.
* hle: kernel: Rename Process to KProcess.bunnei2021-05-051-9/+9
|
* core: memory: Add a work-around to allocate and access kernel memory regions ↵bunnei2021-05-051-0/+16
| | | | by vaddr.
* core: memory: Add templated GetPointer methods.bunnei2021-02-181-0/+10
|
* memory: Remove MemoryHookMerryMage2021-01-011-34/+0
|
* ARM/Memory: Correct Exclusive Monitor and Implement Exclusive Memory Writes.Fernando Sahmkow2020-06-271-0/+65
|
* General: Recover Prometheus project from harddrive failure Fernando Sahmkow2020-06-271-1/+1
| | | | | | | This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host Timing, Reworks the Kernel's Scheduler, Introduce Idle State and Suspended State, Recreates the bootmanager, Initializes Multicore system.
* core: memory: Updates for new VMM.bunnei2020-04-171-14/+1
|
* core: memory: Move to Core::Memory namespace.bunnei2020-04-171-2/+2
| | | | - helpful to disambiguate Kernel::Memory namespace.
* Memory: Address Feedback.Fernando Sahmkow2020-04-081-0/+68
|
* Buffer Cache: Use vAddr instead of physical memory.Fernando Sahmkow2020-04-061-0/+10
|
* core/memory: Create a special MapMemoryRegion for physical memory.Markus Wick2020-01-181-1/+15
| | | | This allows us to create a fastmem arena within the memory.cpp helpers.
* core/memory; Migrate over SetCurrentPageTable() to the Memory classLioncash2019-11-261-4/+7
| | | | | | | Now that literally every other API function is converted over to the Memory class, we can just move the file-local page table into the Memory implementation class, finally getting rid of global state within the memory code.
* core/memory: Migrate over Write{8, 16, 32, 64, Block} to the Memory classLioncash2019-11-261-9/+88
| | | | | | | | | The Write functions are used slightly less than the Read functions, which make these a bit nicer to move over. The only adjustments we really need to make here are to Dynarmic's exclusive monitor instance. We need to keep a reference to the currently active memory instance to perform exclusive read/write operations.
* core/memory: Migrate over Read{8, 16, 32, 64, Block} to the Memory classLioncash2019-11-261-7/+78
| | | | | | | | | | | | | | With all of the trivial parts of the memory interface moved over, we can get right into moving over the bits that are used. Note that this does require the use of GetInstance from the global system instance to be used within hle_ipc.cpp and the gdbstub. This is fine for the time being, as they both already rely on the global system instance in other functions. These will be removed in a change directed at both of these respectively. For now, it's sufficient, as it still accomplishes the goal of de-globalizing the memory code.
* core/memory: Migrate over ZeroBlock() and CopyBlock() to the Memory classLioncash2019-11-261-2/+51
| | | | | These currently aren't used anywhere in the codebase, so these are very trivial to move over to the Memory class.