| Age | Commit message (Collapse) | Author |
|
Implement GPU Synchronization Mechanisms & Correct NVFlinger
|
|
kernel/process: Allocate the process' TLS region during initialization
|
|
This messages were originally set as warnning since few games used these
svcs and it was needed for debugging. This is no longer the case.
|
|
core: Remove CurrentArmInterface() global accessor
|
|
Implement MapPhysicalMemory/UnmapPhysicalMemory
|
|
Replaces the final usage of the global accessor function and removes it.
Removes one more enabler of global state.
|
|
|
|
Creating multiple "AudioRenderer" threads cause the previous thread to be overwritten. The thread will name be renamed to AudioRenderer-InstanceX, where X is the current instance number.
|
|
|
|
Restore memory perms on svcUnmapMemory/UnloadNro
|
|
core/arm: Remove obsolete Unicorn memory mapping
|
|
This simply queries whether or not auto-sleep facilities are disabled
and has no special handling. It's a basic getter function.
|
|
Provides a basic implementation of SetAutoSleepDisabled. Until idle
handling is implemented, this is about the best we can do.
In the meantime, provide a rough documenting of specifics that occur
when this function is called on actual hardware.
|
|
The JIT is mature enough that this setting can be removed, falling back
to Unicorn only on unsupported architectures. Any missing features from
Unicorn (of which there are extremely few), are mostly
developer-oriented, which most users don't care about.
Features should be coordinated with the JIT, not the interpreter,
anyhow.
|
|
This was initially necessary when AArch64 JIT emulation was in its
infancy and all memory-related instructions weren't implemented.
Given the JIT now has all of these facilities implemented, we can remove
these functions from the CPU interface.
|
|
Prior to PR, Yuzu did not restore memory to RW-
on unmap of mirrored memory or unloading of NRO.
(In fact, in the NRO case, the memory was unmapped
instead of reprotected to --- on Load, so it was
actually lost entirely...)
This PR addresses that, and restores memory to RW-
as it should.
This fixes a crash in Super Smash Bros when creating
a World of Light save for the first time, and possibly
other games/circumstances.
|
|
IFriendService::GetFriendList
|
|
pm: Implement various pm commands for finding process and title IDs
|
|
mii: Implement IDatabaseService SetInterfaceVersion
|
|
We don't have any friends implemented in Yuzu yet so it doesn't make sense to return any friends. For now we'll be returning 0 friends however the information provided will allow a proper implementation of this cmd when needed.
|
|
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.
|
|
hid:StartLrAssignmentMode, hid:StopLrAssignmentMode, hid:SwapNpadAssignment
|
|
|
|
apm: Initial implementation of performance config and boost mode
|
|
fsp-srv: Implement Access Logging Functionality
|
|
|
|
|
|
|
|
|
|
This implements svcMapPhysicalMemory/svcUnmapPhysicalMemory for Yuzu,
which can be used to map memory at a desired address by games since
3.0.0.
It also properly parses SystemResourceSize from NPDM, and makes
information available via svcGetInfo.
This is needed for games like Super Smash Bros. and Diablo 3 -- this
PR's implementation does not run into the "ASCII reads" issue mentioned
in the comments of #2626, which was caused by the following bugs in
Yuzu's memory management that this PR also addresses:
* Yuzu's memory coalescing does not properly merge blocks. This results
in a polluted address space/svcQueryMemory results that would be
impossible to replicate on hardware, which can lead to game code making
the wrong assumptions about memory layout.
* This implements better merging for AllocatedMemoryBlocks.
* Yuzu's implementation of svcMirrorMemory unprotected the entire
virtual memory range containing the range being mirrored. This could
lead to games attempting to map data at that unprotected
range/attempting to access that range after yuzu improperly unmapped
it.
* This PR fixes it by simply calling ReprotectRange instead of
Reprotect.
|
|
Prior to execution within a process beginning, the process establishes
its own TLS region for uses (as far as I can tell) related to exception
handling.
Now that TLS creation was decoupled from threads themselves, we can add
this behavior to our Process class. This is also good, as it allows us
to remove a stub within svcGetInfo, namely querying the address of that
region.
|
|
Keeps this particular set of behavior isolated to its own function.
|
|
Appears to set a member variable used to affect the API that games access, and the method used to store data.
|
|
core/reporter: Minor changes
|
|
kernel/vm_manager: Handle stack/TLS IO region placement a little better
|
|
|
|
|
|
These aren't used within the central memory management code, so they can
be removed.
|
|
This isn't used by anything in the header file, so it can be removed.
|
|
Provides a more accurate name for the memory region and also
disambiguates between the map and new map regions of memory, making it
easier to understand.
|
|
Handles the placement of the stack a little nicer compared to the
previous code, which was off in a few ways. e.g.
The stack (new map) region, shouldn't be the width of the entire address
space if the size of the region calculation ends up being zero. It
should be placed at the same location as the TLS IO region and also have
the same size.
In the event the TLS IO region contains a size of zero, we should also
be doing the same thing. This fixes our memory layout a little bit and
also resolves some cases where assertions can trigger due to the memory
layout being incorrect.
|
|
Taking the json instance as a constant reference, makes all moves into
the parameter non-functional, resulting in copies. Taking it by value
allows moves to function.
|
|
Adds missing inclusions to prevent potential compilation issues.
|
|
The Reporter class is part of the Core namespace, so the System class
doesn't need to be qualified.
|
|
This can inhibit copy-elision, so we can remove this redundant move.
|
|
Makes all control statements braced, regardless of their size, making
code more uniform.
|
|
If the path couldn't be created, then we shouldn't be attempting to save
the file.
|
|
|
|
|
|
|