fearlessTobi
1190ea6ddb
Port #4182 from Citra: "Prefix all size_t with std::"
8 years ago
bunnei
d190b46a38
gl_renderer: Cache textures, framebuffers, and shaders based on CPU address.
8 years ago
Lioncash
b4a81f9bca
gpu: Make memory_manager private
Makes the class interface consistent and provides accessors for
obtaining a reference to the memory manager instance.
Given we also return references, this makes our more flimsy uses of
const apparent, given const doesn't propagate through pointers in the
way one would typically expect. This makes our mutable state more
apparent in some places.
8 years ago
Lioncash
69bbe31ca8
renderer_base: Make Rasterizer() return the rasterizer by reference
All calling code assumes that the rasterizer will be in a valid state,
which is a totally fine assumption. The only way the rasterizer wouldn't
be is if initialization is done incorrectly or fails, which is checked
against in System::Init().
8 years ago
Lioncash
49dc22f84e
video_core: Eliminate the g_renderer global variable
We move the initialization of the renderer to the core class, while
keeping the creation of it and any other specifics in video_core. This
way we can ensure that the renderer is initialized and doesn't give
unfettered access to the renderer. This also makes dependencies on types
more explicit.
For example, the GPU class doesn't need to depend on the
existence of a renderer, it only needs to care about whether or not it
has a rasterizer, but since it was accessing the global variable, it was
also making the renderer a part of its dependency chain. By adjusting
the interface, we can get rid of this dependency.
8 years ago
Lioncash
0e92e67e06
memory: Remove unused GetSpecialHandlers() function
This is just unused code, so we may as well get rid of it.
8 years ago
Lioncash
3bcf090d37
core/memory: Get rid of 3DS leftovers
Removes leftover code from citra that isn't needed.
8 years ago
Lioncash
b7e7ddbdfc
core/memory: Remove unused function GetSpecialHandlers() and an unused variable in ZeroBlock()
8 years ago
Lioncash
b1b1c60009
core/memory, core/hle/kernel: Use std::move where applicable
Avoids pointless copies
8 years ago
James Rowe
d74d2a77cb
Update clang format
8 years ago
James Rowe
e159c550d8
Rename logging macro back to LOG_*
8 years ago
Michael Scire
a3509a9e74
Kernel/Arbiters: Fix casts, cleanup comments/magic numbers
8 years ago
bunnei
44c565aeca
core: Implement multicore support.
8 years ago
Lioncash
1b310cbb3a
general: Make formatting of logged hex values more straightforward
This makes the formatting expectations more obvious (e.g. any zero padding specified
is padding that's entirely dedicated to the value being printed, not any pretty-printing
that also gets tacked on).
8 years ago
Lioncash
324ee31fc3
general: Convert assertion macros over to be fmt-compatible
8 years ago
Subv
6418127891
Memory: Added a missing shortcut for Memory::CopyBlock for the current process.
8 years ago
Lioncash
796b5c727d
core/memory: Amend address widths in asserts
Addresses are 64-bit, these formatting specifiers are simply holdovers from citra. Adjust them to be the correct width.
8 years ago
Lioncash
62e427d98f
core/memory: Move logging macros over to new fmt-capable ones
While we're at it, correct addresses to print all 64 bits where applicable, which were holdovers from citra.
8 years ago
bunnei
31748079de
gl_rasterizer_cache: Update to be based on GPU addresses, not CPU addresses.
8 years ago
bunnei
ad1af61685
memory: Fix cast for ReadBlock/WriteBlock/ZeroBlock/CopyBlock.
8 years ago
bunnei
49b3b519fc
memory: Add RasterizerMarkRegionCached code and cleanup.
8 years ago
bunnei
c13802819b
memory: Fix typo in RasterizerFlushVirtualRegion.
8 years ago
bunnei
4d5c052f34
memory: RasterizerFlushVirtualRegion should also check process image region.
8 years ago
bunnei
6131f96f6a
rasterizer: Flush and invalidate regions should be 64-bit.
8 years ago
bunnei
c9c232727c
memory: Port RasterizerFlushVirtualRegion from Citra.
8 years ago
N00byKing
35d617d342
Remove more N3DS References
8 years ago
bunnei
f16763ed52
core: Move process creation out of global state.
8 years ago
MerryMage
38a3a63ffd
memory: LOG_ERROR when falling off end of page table
8 years ago
Lioncash
af7ddaf0e2
memory: Silence formatting sepecifier warnings
8 years ago
MerryMage
7a23a53396
memory: Replace all memory hooking with Special regions
8 years ago
Rozlette
ecc35e89e0
memory: Return false for large VAddr in IsValidVirtualAddress
8 years ago
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
9 years ago
Subv
bf55d2f57e
Memory: Make ReadBlock take a Process parameter on which to operate
9 years ago
bunnei
55eaa14131
memory: Log with 64-bit values.
9 years ago
bunnei
e5731e94d6
core: Various changes to support 64-bit addressing.
9 years ago
Huw Pascoe
da1c8d1522
Fixed type conversion ambiguity
9 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.
9 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.
9 years ago
MerryMage
0e49bffe03
ARM_Interface: Implement PageTableChanged
9 years ago
MerryMage
ecf27fbf82
memory: Remove GetCurrentPageTablePointers
9 years ago
MerryMage
6b8ad273fc
memory: Add GetCurrentPageTable/SetCurrentPageTable
Don't expose Memory::current_page_table as a global.
9 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
9 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