James Rowe
bd5740a721
Remove gpu debugger and get yuzu qt to compile
8 years ago
MerryMage
66a015fe9a
fix macos build
8 years ago
bunnei
4728cc141a
core/video_core: Fix a bunch of u64 -> u32 warnings.
8 years ago
bunnei
8b314ec3f9
memory: Print addresses as 64-bit.
8 years ago
Subv
1265575db5
Memory: Make WriteBlock take a Process parameter on which to operate
8 years ago
Subv
bf55d2f57e
Memory: Make ReadBlock take a Process parameter on which to operate
8 years ago
bunnei
55eaa14131
memory: Log with 64-bit values.
8 years ago
bunnei
e5731e94d6
core: Various changes to support 64-bit addressing.
8 years ago
Huw Pascoe
da1c8d1522
Fixed type conversion ambiguity
8 years ago
Subv
3cb2bf08c3
Memory: Allow IsValidVirtualAddress to be called with a specific process parameter.
There is still an overload of IsValidVirtualAddress that only takes the VAddr and will default to the current process.
8 years ago
Subv
bfc70ef1d1
Memory/RasterizerCache: Ignore unmapped memory regions when caching physical regions.
Not all physical regions need to be mapped into the address space of every process, for example, system modules do not have a VRAM mapping.
This fixes a crash when loading applets and system modules.
8 years ago
MerryMage
0e49bffe03
ARM_Interface: Implement PageTableChanged
8 years ago
MerryMage
ecf27fbf82
memory: Remove GetCurrentPageTablePointers
8 years ago
MerryMage
6b8ad273fc
memory: Add GetCurrentPageTable/SetCurrentPageTable
Don't expose Memory::current_page_table as a global.
8 years ago
Subv
8932f435fc
Kernel/Memory: Make IsValidPhysicalAddress not go through the current process' virtual memory mapping.
9 years ago
Subv
71281c2114
Kernel/Memory: Changed GetPhysicalPointer so that it doesn't go through the current process' page table to obtain a pointer.
9 years ago
Subv
36100ec791
Kernel/Memory: Give each Process its own page table.
The loader is in charge of setting the newly created process's page table as the main one during the loading process.
9 years ago
danzel
e16c96d587
Use recursive_mutex instead of mutex to fix #2902
8 years ago
Subv
36220f3873
Kernel/Memory: Acquire the global HLE lock when a memory read/write operation falls outside of the fast path, for it might perform an MMIO operation.
9 years ago
Yuri Kunde Schlesner
1423b3b10e
Memory: Add function to flush a virtual range from the rasterizer cache
This is slightly more ergonomic to use, correctly handles virtual
regions which are disjoint in physical addressing space, and checks only
regions which can be cached by the rasterizer.
9 years ago
Yuri Kunde Schlesner
3bc1034465
Memory: Fix crash when unmapping a VMA covering cached surfaces
Unmapping pages tries to flush any cached GPU surfaces touching that
region. When a cached page is invalidated, GetPointerFromVMA() is used
to restore the original pagetable pointer. However, since that VMA has
already been deleted, this hits an UNREACHABLE case in that function.
Now when this happens, just set the page type to Unmapped and continue,
which arrives at the correct end result.
9 years ago
Yuri Kunde Schlesner
75be7907c1
Memory: Add TryVirtualToPhysicalAddress, returning a boost::optional
9 years ago
Yuri Kunde Schlesner
1dd91e371b
Memory: Make PhysicalToVirtualAddress return a boost::optional
And fix a few places in the code to take advantage of that.
9 years ago
Yuri Kunde Schlesner
2af0a2a4b7
Memory: Add constants for the n3DS additional RAM
This is 4MB of extra, separate memory that was added on the New 3DS.
9 years ago
bunnei
1224db246e
Revert "Memory: Always flush whole pages from surface cache"
9 years ago
Yuri Kunde Schlesner
415064165a
Memory: Always flush whole pages from surface cache
This prevents individual writes touching a cached page, but which don't
overlap the surface, from constantly hitting the surface cache lookup.
9 years ago
James Rowe
13888eac06
Expose page table to dynarmic for optimized reads and writes to the JIT
9 years ago
wwylele
7dcbdc4c43
memory: fix IsValidVirtualAddress for RasterizerCachedMemory
RasterizerCachedMemory doesn't has pointer but should be considered as valid
9 years ago
Yuri Kunde Schlesner
fa5d9d8266
Use negative priorities to avoid special-casing the self-include
9 years ago
Emmanuel Gil Peyrot
1138ec0d49
Remove empty newlines in #include blocks.
This makes clang-format useful on those.
Also add a bunch of forgotten transitive includes, which otherwise
prevented compilation.
9 years ago
Emmanuel Gil Peyrot
628ed4376a
Sources: Run clang-format on everything.
9 years ago
wwylele
3008911345
Memory: add ReadCString function
10 years ago
Subv
b502c2e4d0
Memory: Handle RasterizerCachedMemory and RasterizerCachedSpecial page types in the memory block manipulation functions.
10 years ago
Subv
9d36016350
Memory: Make ReadBlock and WriteBlock accept void pointers.
10 years ago
MerryMage
c3ad268edc
Memory: CopyBlock
10 years ago
MerryMage
73cc880444
Memory: ZeroBlock
10 years ago
MerryMage
c1c78c27c2
Memory: ReadBlock/WriteBlock
10 years ago
MerryMage
b6feee037b
Memory: IsValidVirtualAddress/IsValidPhysicalAddress
10 years ago
tfarley
459035a108
HWRasterizer: Texture forwarding
10 years ago
Yuri Kunde Schlesner
46dc35ae20
Memory: Do correct Phys->Virt address translation for non-APP linheap
10 years ago
MerryMage
e614492dca
Memory: Implement MMIO
10 years ago
Gareth Poole
cfeae1a4f5
Fixed spelling errors
10 years ago
Lioncash
9f37facda2
memory: Get rid of pointer casts
10 years ago
Yuri Kunde Schlesner
e34643a3e4
Kernel: Add more infrastructure to support different memory layouts
This adds some structures necessary to support multiple memory regions
in the future. It also adds support for different system memory types
and the new linear heap mapping at 0x30000000.
11 years ago
Yuri Kunde Schlesner
168d376c67
Memory: Move address type conversion routines to memory.cpp/h
These helpers aren't really part of the kernel, and mem_map.cpp/h is
going to be moved there next.
11 years ago
Yuri Kunde Schlesner
51820691e7
Memory: Fix unmapping of pages
11 years ago
Emmanuel Gil Peyrot
2d044a67c9
Common: Cleanup memory and misc includes.
11 years ago
Yuri Kunde Schlesner
0a60aa75c2
Kernel: Add VMManager to manage process address spaces
This enables more dynamic management of the process address space,
compared to just directly configuring the page table for major areas.
This will serve as the foundation upon which the rest of the Kernel
memory management functions will be built.
11 years ago
Yuri Kunde Schlesner
dd4430609a
Memory: Use a table based lookup scheme to read from memory regions
11 years ago
Yuri Kunde Schlesner
52158c1b8d
Memory: Read SharedPage directly from Memory::Read
11 years ago