James Rowe
282adfc70b
Frontend/GPU: Refactor context management
...
Changes the GraphicsContext to be managed by the GPU core. This
eliminates the need for the frontends to fool around with tricky
MakeCurrent/DoneCurrent calls that are dependent on the settings (such
as async gpu option).
This also refactors out the need to use QWidget::fromWindowContainer as
that caused issues with focus and input handling. Now we use a regular
QWidget and just access the native windowHandle() directly.
Another change is removing the debug tool setting in FrameMailbox.
Instead of trying to block the frontend until a new frame is ready, the
core will now take over presentation and draw directly to the window if
the renderer detects that its hooked by NSight or RenderDoc
Lastly, since it was in the way, I removed ScopeAcquireWindowContext and
replaced it with a simple subclass in GraphicsContext that achieves the
same result
2020-03-24 21:03:42 -06:00
bunnei
f8382c9d9d
Merge pull request #3524 from FearlessTobi/port-5106
...
Port citra-emu/citra#5106 : "gdbstub: Ensure gdbstub doesn't drop packets crucial to initialization"
2020-03-24 16:50:58 -04:00
FearlessTobi
4afebf26b6
sm/controller: Increase PointerBufferSize
...
This increases the PointerBufferSize as a lager one is required by some services.
This change is still not hw-accurate, but it is proven to work in Ryujinx.
Instead of using a hardcoded size, we should figure out the specific values for each service in the future. Some of them can be taken from Atmosphere: https://github.com/Atmosphere-NX/Atmosphere/search?q=PointerBufferSize .
2020-03-23 03:19:30 +01:00
bunnei
e731c4b991
Merge pull request #3477 from FearlessTobi/webapplet-shit
...
core/web_browser: Allow WebApplet to exit gracefully when an error occurs
2020-03-22 13:11:02 -04:00
FearlessTobi
977418c65b
core/web_browser: Allow WebApplet to exit gracefully when an error occurs
...
Currently, yuzu just freezes when an error occurs while Initializing the WebApplet.
From a user perspective, this obviously isn't great as the game just softlocks.
With this change, yuzu will call the Finalize method, so to the game it seems like as the user just exited the WebApplet normally.
This works around https://github.com/yuzu-emu/yuzu/issues/2852 .
2020-03-22 16:01:13 +01:00
Dan
06dea163fa
set: implement GetRegionCode
2020-03-19 10:37:42 +01:00
bunnei
bc681dc555
Merge pull request #3527 from FearlessTobi/output-mode
...
yuzu: Save sound output mode and set it to Stereo by default
2020-03-18 23:19:22 -04:00
ReinUsesLisp
ac7ee21331
time_zone_content_manager: Fix out of bounds read
...
There were cases where raw_data didn't contain enough
space to hold the zero terminator.
This was caught with -fsanitize=address.
2020-03-18 19:06:16 -03:00
FearlessTobi
cdeadd448b
yuzu: Save sound output mode and set it to Stereo by default
2020-03-17 19:03:00 +01:00
Gauvain "GovanifY" Roussel-Tarbouriech
eae2ed6b07
gdbstub: small logic bug fix with defer_start
2020-03-17 11:18:39 +01:00
Gauvain "GovanifY" Roussel-Tarbouriech
38036eb1c8
gdbstub: Ensure gdbstub doesn't drop packets crucial to initialization
2020-03-17 11:18:13 +01:00
bunnei
ca2d228c9d
Merge pull request #3497 from FernandoS27/microprogfile-extend
...
Small corrections and features to microprofile
2020-03-12 12:14:03 -04:00
Fernando Sahmkow
95b804ff05
NVFlinger: Do the microprofile Flip after processing a valid frame.
2020-03-12 10:52:44 -04:00
Vitor Kiguchi
e891ff9a0c
framebuffer_layout.h: drop the use of enum for screen dimensions.
...
+clang format
2020-03-11 14:22:28 -03:00
Rodrigo Locatti
22e825a3bc
Merge pull request #3301 from ReinUsesLisp/state-tracker
...
video_core: Remove gl_state and use a state tracker based on dirty flags
2020-03-09 18:34:37 -03:00
bunnei
84e9f9f395
Merge pull request #3452 from Morph1984/anisotropic-filtering
...
frontend/Graphics: Add "Advanced" graphics tab and experimental Anisotropic Filtering support
2020-03-07 22:28:35 -05:00
bunnei
dba112e510
core: hle: Implement separate A32/A64 SVC interfaces.
2020-03-02 21:52:03 -05:00
bunnei
c083ea7d78
core: Implement separate A32/A64 ARM interfaces.
2020-03-02 21:51:57 -05:00
bunnei
6fc485a607
core: loader: Remove check for 32-bit.
2020-03-02 21:43:15 -05:00
bunnei
64facb403e
core: dynarmic: Add CP15 from Citra.
2020-03-02 21:43:15 -05:00
bunnei
08c638f249
Merge pull request #3464 from FernandoS27/jit-fix
...
ARM_Interface: Cache the JITs instead of deleting/recreating.
2020-03-02 21:41:43 -05:00
ReinUsesLisp
eed789d0d1
video_core: Reintroduce dirty flags infrastructure
2020-02-28 17:56:41 -03:00
Morph
7ee6065178
Create an "Advanced" tab in the graphics configuration tab and add anisotropic filtering levels.
2020-02-27 21:34:00 -05:00
bunnei
969357af1a
Merge pull request #3430 from bunnei/split-presenter
...
Port citra-emu/citra#4940 : "Split Presentation thread from Render thread"
2020-02-27 19:51:55 -05:00
Morph
e1efab1f51
AM/ICommonStateGetter: Stub SetLcdBacklighOffEnabled ( #3454 )
...
* Stub SetLcdBacklighOffEnabled
Used by Super Smash Bros. Ultimate
We require backlight services to be implemented to turn on/off the backlight.
* Address feedback
2020-02-27 17:49:23 +01:00
bunnei
aef159354c
renderer_opengl: Move Frame/FrameMailbox to OpenGL namespace.
2020-02-26 18:28:50 -05:00
Fernando Sahmkow
f3d4d4eaa8
ARM_Interface: Cache the JITs instead of deleting/recreating.
...
This was a bug inherited from citra which was fixed by then at some
time. This commit corrects such bug and ensures JITs are correctly
recycled.
2020-02-26 15:53:47 -04:00
bunnei
01a05b48b7
Merge pull request #3431 from CJBok/npad-fix
...
InputCommon: analog_from_button get direction implementation
2020-02-25 21:39:26 -05:00
bunnei
667f026c95
core: frontend: Refactor scope_acquire_window_context to scope_acquire_context.
2020-02-25 21:23:00 -05:00
bunnei
2e16c23784
frontend: sdl2: emu_window: Implement separate presentation thread.
2020-02-25 21:23:00 -05:00
bunnei
dc672ca4b3
renderer_opengl: Add texture mailbox support for presenter thread.
2020-02-25 21:22:59 -05:00
bunnei
0c82b00dfd
core: frontend: emu_window: Add TextureMailbox class.
2020-02-25 21:22:57 -05:00
bunnei
571451bdfe
core: settings: Add setting to enable vsync, which is on by default.
2020-02-25 20:57:02 -05:00
Fernando Sahmkow
3d0a2375ca
Scheduler: Inline global scheduler in Scheduler Lock.
2020-02-22 12:39:17 -04:00
Fernando Sahmkow
a1bf353780
Kernel: Correct pending feedback.
2020-02-22 11:51:03 -04:00
Fernando Sahmkow
b9472eae44
System: Expose Host thread registering routines from kernel.
2020-02-22 11:18:07 -04:00
Fernando Sahmkow
d219a96cc8
Kernel: Address Feedback.
2020-02-22 11:18:07 -04:00
Fernando Sahmkow
ea956c823e
Kernel: Implement Scheduler locks
2020-02-22 11:18:07 -04:00
Fernando Sahmkow
5c90d22f3d
Kernel: Implement Time Manager.
2020-02-22 11:18:07 -04:00
Fernando Sahmkow
179bafa7cb
Kernel: Rename ThreadCallbackHandleTable and Setup Thread Ids on Kernel.
2020-02-22 11:18:06 -04:00
Fernando Sahmkow
0728dfef84
Kernel: Make global scheduler depend on KernelCore
2020-02-22 11:18:06 -04:00
Brian Clinkenbeard
ad4e5c15fb
httplib compatibility
2020-02-18 18:04:33 -08:00
CJBok
23c4cc80e2
analog_from_button get direction implementation
2020-02-18 06:45:37 +01:00
bunnei
72d4c6fee0
Merge pull request #3412 from Morph1984/aspect-ratio
...
GUI: Add aspect ratio dropdown
2020-02-17 22:02:18 -05:00
bunnei
26006cbd2c
Merge pull request #3420 from namkazt/master2
...
nvhost_gpu: implement ChannelSetTimeslice
2020-02-17 00:31:11 -05:00
Nguyen Dac Nam
5257a83ebe
IUserLocalCommunicationService: add function Initialize2
2020-02-16 13:24:34 +07:00
Nguyen Dac Nam
6c0eb6026b
HLE: correct function name of IUserLocalCommunicationService
...
402: function name should be Initialize2 (7.0.0+) not SetOperationMode
Follow by: https://switchbrew.org/wiki/LDN_services#IUserLocalCommunicationService
2020-02-16 13:14:06 +07:00
namkazy
7fadc9c180
nvhost_gpu: implement ChannelSetTimeslice
2020-02-16 11:53:03 +07:00
bunnei
f552d553ba
Merge pull request #3401 from FernandoS27/synchronization
...
Set of refactors for Kernel Synchronization and Hardware Constants
2020-02-14 14:40:20 -05:00
Morph
c3d0a0d627
Add 4:3 aspect ratio and address feedback
2020-02-14 14:39:04 -05:00
Fernando Sahmkow
829d8c0d6b
Core: Correct compilition in GCC
2020-02-14 05:53:30 -04:00
Morph
20dc2e3622
Address feedback
2020-02-14 00:06:26 -05:00
Morph
22f58cca5e
Use enumeration instead of magic numbers
2020-02-13 23:13:23 -05:00
Morph
27e19f87c6
Add following aspect ratios: 16:9, 21:9, Stretch to Window
...
Available as a drop down within the configure graphics tab.
2020-02-13 22:17:28 -05:00
bunnei
74feed372c
Merge pull request #3400 from makigumo/patch-1
...
update hwopus DecodeInterleaved for FW 7.0.0+
2020-02-13 21:26:13 -05:00
Fernando Sahmkow
2bc949628d
Core: Address Feedback
2020-02-13 19:10:33 -04:00
Lioncash
be269e21a5
address_arbiter: Collapse loops in InsertThread() and RemoveThread()
...
Same behavior, but without the need to explicitly loop through
everything manually.
2020-02-12 15:34:07 -05:00
Lioncash
9f2c703137
address_arbiter: Simplify GetThreadsWaitingOnAddress()
...
Simplifies the overall function and also allows for it to become a
const-qualified member function.
2020-02-12 15:10:16 -05:00
bunnei
8f8dda2d5b
Merge pull request #3403 from lioncash/debug
...
bcat/backend: Prevent fmt exception in debug log within NullBackend::Clear()
2020-02-12 11:17:43 -05:00
Lioncash
f00a54f508
bcat/backend: Make formatting of passphrase consistent in NullBackend::SetPassphrase()
...
Aligns the '=' to be consistent with the rest of the logs within this
source file.
2020-02-12 01:18:29 -05:00
Lioncash
eefd97e80d
bcat/backend: Prevent fmt exception in debug log within NullBackend::Clear()
...
A formatting specifier within Clear wasn't being used, which will cause
fmt to throw an exception. This fixes that.
2020-02-12 01:14:47 -05:00
Lioncash
b80c348b09
kernel/thread: Remove trivial usages of the global system accessor
...
We can just use the kernel member variable directly instead of going
through the system to obtain the same thing.
2020-02-12 01:00:41 -05:00
Fernando Sahmkow
1e6f8aba04
Core: Set all hardware emulation constants in a single file.
2020-02-11 20:19:11 -04:00
Fernando Sahmkow
d23d504d77
Kernel: Refactor synchronization to better match RE
2020-02-11 18:47:31 -04:00
makigumo
926ea5a16d
update hwopus DecodeInterleaved for FW 7.0.0+
...
trivial change,
see https://switchbrew.org/wiki/Audio_services#IHardwareOpusDecoder
2020-02-11 18:41:04 +01:00
Fernando Sahmkow
c5aefe42aa
Kernel: Change WaitObject to Synchronization object. In order to better reflect RE.
2020-02-11 10:46:25 -04:00
bunnei
7b07e521ca
hle: services: Use std::shared_ptr instead of copy by value.
2020-02-07 23:02:26 -05:00
bunnei
aa3f9b9606
Merge pull request #3381 from bunnei/ipc-fix
...
hle: services: Fix prepo IPC, and add better error checking.
2020-02-07 16:25:42 -05:00
bunnei
ba53543da6
kernel: transfer_memory: Properly reserve and reset memory region.
2020-02-05 23:06:54 -05:00
Zach Hilman
7a547b9342
wait_object: Make wait behavior only require one object to signal.
...
- This was holdover from citra.
2020-02-05 23:06:53 -05:00
bunnei
3a0c1e79f8
am: Correct IPC object count mismatch.
2020-02-05 23:06:53 -05:00
bunnei
77da74e17a
services: am: Clear events on PopOutData and PopInteractiveOutData.
2020-02-05 23:06:52 -05:00
bunnei
84e895cdd6
am: Refactor IStorage interface.
2020-02-05 23:06:52 -05:00
bunnei
3557fa25d0
applets: software_keyboard: Signal state change on end of interactive session.
2020-02-05 23:06:51 -05:00
bunnei
be5fcffb89
applets: software_keyboard: Minor cleanup.
2020-02-05 23:06:50 -05:00
bunnei
2245c24e21
services: prepo: Fix IPC interface with SaveReport/SaveReportWithUser.
2020-02-05 22:52:35 -05:00
bunnei
9751ccc5e0
hle_ipc: Add error checking to read/write buffer access.
2020-02-05 22:52:35 -05:00
bunnei
c31ec00d67
Merge pull request #3337 from ReinUsesLisp/vulkan-staged
...
yuzu: Implement Vulkan frontend
2020-02-03 16:56:25 -05:00
bunnei
69a6796de1
Merge pull request #3284 from CJBok/hid-fix
...
hid: Fix analog sticks directional states
2020-02-01 14:02:41 -05:00
bunnei
c18f9898d9
Merge pull request #3364 from lioncash/thread
...
core/arm: Remove usage of global GetCurrentThread()
2020-01-31 11:13:24 -05:00
bunnei
6b5b01b29f
Merge pull request #3363 from lioncash/unique_ptr
...
kernel/physical_core: Make use of std::unique_ptr instead of std::shared_ptr
2020-01-30 23:33:02 -05:00
bunnei
91b0a3f799
Revert "system_archive: Fix Korean and Chinese fonts"
2020-01-30 22:02:15 -05:00
Lioncash
472319e573
core/arm: Remove usage of global GetCurrentThread()
...
Now both CPU backends go through their referenced system instance to
obtain the current thread.
2020-01-30 18:52:25 -05:00
Lioncash
2de2bb980e
kernel/physical_core: Make use of std::unique_ptr
...
shared_ptr was used in 2d1984c20c
due to a
misunderstanding of how the language generates move constructors and
move assignment operators.
If a destructor is user-provided, then the compiler won't generate the
move constructor and move assignment operators by default--they must be
explicitly opted into.
The reason for the compilation errors is due to the fact that the
language will fall back to attempting to use the copy constructor/copy
assignment operators if the respective move constructor or move
assignment operator is unavailable.
Given that we explicitly opt into them now, the the move constructor and
move assignment operators will be generated as expected.
2020-01-30 18:42:40 -05:00
Lioncash
16e7b7b83d
core/cpu_manager: Remove unused includes
...
Nothing from these headers are used within this source file, so we can
remove them.
2020-01-30 18:30:57 -05:00
Lioncash
51927bc9dc
kernel/physical_core: Remove unused kernel reference member variable
...
This isn't used within the class, so it can be removed to simplify the
overall interface.
While we're in the same area, we can simplify a unique_ptr reset() call.
2020-01-30 18:29:57 -05:00
bunnei
985d0f35e5
Merge pull request #3353 from FernandoS27/aries
...
System: Refactor CPU Core management and move ARMInterface and Schedulers to Kernel
2020-01-30 18:13:59 -05:00
bunnei
8a7cdfc3ff
Merge pull request #3151 from FearlessTobi/fix-korean
...
system_archive: Fix Korean and Chinese fonts
2020-01-30 15:09:55 -05:00
ReinUsesLisp
f92cbc5501
yuzu: Implement Vulkan frontend
...
Adds a Qt and SDL2 frontend for Vulkan. It also finishes the missing
bits on Vulkan initialization.
2020-01-29 17:53:11 -03:00
ReinUsesLisp
788d57d723
settings: Add settings for graphics backend
2020-01-29 17:53:11 -03:00
ReinUsesLisp
e651e54b85
core: Only wait for idle on gpu_core when it was initialized
...
This fixes crashes when a Vulkan device fails to initialize.
2020-01-29 17:53:11 -03:00
Fernando Sahmkow
2d1984c20c
System: Address Feedback
2020-01-27 09:54:11 -04:00
Fernando Sahmkow
de4b01f75d
System: Correct PrepareReschedule.
2020-01-26 14:32:50 -04:00
Fernando Sahmkow
a1630ab53e
Kernel: Remove a few global instances from the kernel.
2020-01-26 14:23:46 -04:00
Fernando Sahmkow
e4a1ead897
Core: Refactor CpuCoreManager to CpuManager and Cpu to Core Manager.
...
This commit instends on better naming the new purpose of this classes.
2020-01-26 14:07:22 -04:00
Fernando Sahmkow
450341b397
ArmInterface: Delegate Exclusive monitor factory to exclusive monitor interfasce.
2020-01-26 10:28:23 -04:00
Fernando Sahmkow
4d6a86b03f
Core: Refactor CPU Management.
...
This commit moves ARM Interface and Scheduler handling into the kernel.
2020-01-25 18:55:32 -04:00
bunnei
2a822f3378
bsd: Stub several more functions.
...
- Required for Little Town Hero to boot further.
2020-01-25 00:47:15 -05:00
FearlessTobi
845a5dbca9
Disable clang-format for font files
2020-01-24 23:54:19 +01:00
Fernando Sahmkow
ab89ced244
Kernel: Implement Physical Core.
2020-01-24 15:38:20 -04:00
bunnei
f64adcfc37
Merge pull request #3340 from SciresM/pmdx
...
loader: provide default arguments (zero byte) to NSOs
2020-01-24 10:31:43 -05:00
fearlessTobi
ac3690f205
Input: UDP Client to provide motion and touch controls
...
An implementation of the cemuhook motion/touch protocol, this adds the
ability for users to connect several different devices to citra to send
direct motion and touch data to citra.
Co-Authored-By: jroweboy <jroweboy@gmail.com>
2020-01-23 20:55:26 +01:00
bunnei
ed76c71319
service: time: Implement ToPosixTimeWithMyRule.
...
- Used by Pokemon Mystery Dungeon.
2020-01-22 23:20:19 -05:00
Michael Scire
5a7eecc3ad
loader: provide default arguments (zero byte) to NSOs
...
Certain newer unity games (Terraria, Pokemon Mystery Dungeon) require
that the argument region be populated. Failure to do so results in
an integer underflow in argument count, and eventually an unmapped
read at 0x800000000. Providing this default fixes this.
Note that the behavior of official software is as yet unverified,
arguments-wise.
2020-01-22 20:14:06 -08:00
bunnei
7113236b30
time: Fix month off-by-one error.
...
- Fixes timestamp in ZLA and Astral Chain saves.
2020-01-20 14:20:32 -05:00
bunnei
8b9f433d95
Merge pull request #3271 from bunnei/time-rewrite
...
service: time: Rewrite implementation of glue services.
2020-01-19 22:45:05 -05:00
FearlessTobi
4e9331f45d
system_archive: Fix Chinese font
...
Adds the proper OSS font for the Chinese language.
2020-01-19 15:09:53 +01:00
FearlessTobi
999e3f89b9
system_archive: Fix Korean font
...
Fixes Korean fonts when using Open-source system archives.
2020-01-19 15:09:50 +01:00
Markus Wick
56672b8c98
core/memory: Create a special MapMemoryRegion for physical memory.
...
This allows us to create a fastmem arena within the memory.cpp helpers.
2020-01-18 08:38:47 +01:00
Markus Wick
55103da066
core/hle: Simplify PhysicalMemory usage in vm_manager.
2020-01-18 08:29:19 +01:00
Markus Wick
7e94e544f4
core/loaders: Simplify PhysicalMemory usage.
...
It is currently a std::vector, however we might want to replace it with a more fancy allocator.
So we can't use the C++ iterators any more.
2020-01-18 08:29:19 +01:00
CJBok
635deb70d4
Moved analog direction logic to sdl_impl
2020-01-15 11:25:15 +01:00
CJBok
231d9c10f3
Corrected directional states sensitivity
2020-01-14 21:51:58 +01:00
Markus Wick
c76ffa5019
core/kernel: Fix GetTotalPhysicalMemoryUsed.
...
module._memory was already moved over to a new shared_ptr.
So code_memory_size was not increased at all.
This lowers the heap space and so saves a bit of memory, usually between 50 to 100 MB.
This fixes a regression of c0a01f3adc
2020-01-11 14:04:44 +01:00
CJBok
ae7fd01e38
hid: Fix analog sticks directional states
2020-01-09 02:40:55 +01:00
bunnei
319c4d2108
Merge pull request #3272 from bunnei/vi-close-layer
...
service: vi: Implement CloseLayer.
2020-01-07 12:45:34 -05:00
bunnei
09908207fb
Merge pull request #3261 from degasus/page_table
...
core/memory + arm/dynarmic: Use a global offset within our arm page table.
2020-01-06 11:56:59 -05:00
bunnei
89fc75d769
Merge pull request #3257 from degasus/no_busy_loops
...
video_core: Block in WaitFence.
2020-01-06 00:09:57 -05:00
bunnei
6fe51f398f
Merge pull request #2945 from FernandoS27/fix-bcat
...
nifm: Only return that there's an internet connection when there's a BCATServer
2020-01-05 02:17:16 -05:00
bunnei
be5c149d37
service: time: Implement GetStandardLocalSystemClock.
2020-01-04 22:18:54 -05:00
bunnei
361285add9
time: Remove overflow error checking (currently breaks ADO builds).
2020-01-04 13:48:31 -05:00
bunnei
a4e840181c
service: time: Implement GetClockSnapshotFromSystemClockContext.
2020-01-04 13:48:30 -05:00
bunnei
fab2607c6b
service: time: Implement IsStandardNetworkSystemClockAccuracySufficient.
2020-01-04 13:48:30 -05:00
bunnei
4414640285
system_archive: Add a basic HLE implementation for time zone binary.
2020-01-04 13:48:29 -05:00
bunnei
78f977c980
service: time: Rewrite implementation of glue services.
2020-01-04 13:48:29 -05:00
bunnei
5135b74179
core: Initialize several structs that make use of Common::UUID.
2020-01-04 13:29:55 -05:00
bunnei
64c5631579
service: vi: Implement CloseLayer.
...
- Needed for Undertale.
2020-01-04 00:45:06 -05:00
bunnei
624a0f7f3f
Merge pull request #3247 from FernandoS27/remap-fix
...
NvServices: Correct Ioctl Remap.
2020-01-03 12:30:56 -05:00
ReinUsesLisp
0d6d8129c4
yuzu: Remove Maxwell debugger
...
This was carried from Citra and wasn't really used on yuzu. It also adds
some runtime overhead. This commit removes it from yuzu's codebase.
2020-01-02 23:09:44 -03:00
Markus Wick
0986caa8d8
core/memory + arm/dynarmic: Use a global offset within our arm page table.
...
This saves us two x64 instructions per load/store instruction.
TODO: Clean up our memory code. We can use this optimization here as well.
2020-01-01 12:24:54 +01:00
Markus Wick
cb9dd01ffd
video_core: Block in WaitFence.
...
This function is called rarely and blocks quite often for a long time.
So don't waste power and let the CPU sleep.
This might also increase the performance as the other cores might be allowed to clock higher.
2019-12-30 13:04:53 +01:00
Fernando Sahmkow
a5bb1ac6e3
NvServices: Correct Ioctl Remap.
...
This commit corrects a padding value in Ioctl Remap that was actually an
offset to the mapping address.
2019-12-25 14:37:28 -04:00
bunnei
6d0d79109b
Merge pull request #3214 from lioncash/svc-func
...
kernel/svc: Amend function signature of SignalProcessWideKey
2019-12-12 21:32:36 -05:00
Fernando Sahmkow
22c6b9fab2
Kernel: Correct behavior of Address Arbiter threads. ( #3165 )
...
* Kernel: Correct behavior of Address Arbiter threads.
This corrects arbitration threads to behave just like in Horizon OS.
They are added into a container and released according to what priority
they had when added. Horizon OS does not reorder them if their priority
changes.
* Kernel: Address Feedback.
2019-12-11 10:55:38 -05:00
Lioncash
30e365e4fc
kernel/svc: Correct function signature of SignalProcessWideKey
...
This function doesn't actually return a result code, so we can amend the
signature of it to match.
2019-12-11 07:13:27 -05:00
bunnei
34f8881d3e
Merge pull request #3201 from lioncash/dump
...
kernel/svc: Provide implementations for svcDumpInfo/svcDumpInfoNew
2019-12-10 21:48:37 -05:00
Lioncash
c3e43c7e81
kernel: Remove unnecessary includes
...
Over the course of the changes to the kernel code, a few includes are no
longer necessary, particularly with the change over to std::shared_ptr
from Boost's intrusive_ptr.
2019-12-07 22:37:05 -05:00
Lioncash
67b8265bd6
kernel/svc: Provide implementations for svcDumpInfo/svcDumpInfoNew
...
These are fairly trivial to implement, we can just do nothing. This also
provides a spot for us to potentially dump out any relevant info in the
future (e.g. for debugging purposes with homebrew, etc).
While we're at it, we can also correct the names of both of these
supervisor calls.
2019-12-07 22:01:17 -05:00
Fernando Sahmkow
40cd4df584
CpuCore: Clear exclusive state after doing a run in dynarmic.
...
This commit corrects an error in which a Core could remain with an
exclusive state after running, leaving space for possible race
conditions between changing cores.
2019-12-05 18:08:59 -04:00
ReinUsesLisp
be9f80ef56
telemetry_session: Report renderer backend
...
We only have OpenGL as an option for now. Hardcode the entry.
2019-12-02 16:50:39 -03:00
ReinUsesLisp
526e533e90
telemetry_session: Use temporary to avoid writing the same enum
2019-12-02 16:49:46 -03:00
bunnei
c3d3b173d3
kernel: Implement a more accurate IPC dispatch.
2019-11-28 12:01:53 -05:00
bunnei
e3ee017e91
Merge pull request #3169 from lioncash/memory
...
core/memory: Deglobalize memory management code
2019-11-28 11:43:17 -05:00
bunnei
fe65045dcb
Merge pull request #3171 from lioncash/internal-link
...
filesys/romfs: Make ProcessFile and ProcessDirectory internally linked
2019-11-28 01:18:10 -05:00
Morph
e0242a4654
patch_manager: Adds check for disabled cheats to prevent them from being enabled ( #3178 )
...
* Adds check for disabled cheats to prevent them from being added to the CheatList
* Address feedback
2019-11-28 01:17:17 -05:00
bunnei
c47fc3301d
Merge pull request #3170 from lioncash/enum
...
file_sys/directory: Make EntryType an enum class
2019-11-27 23:23:01 -05:00
Lioncash
d66ab2b8aa
filesys/romfs: Remove unused includes
...
These inclusions aren't used at all within the public interface, so they
can be removed.
2019-11-27 05:29:52 -05:00
Lioncash
ba3c55ab7b
filesys/romfs: Make ProcessFile and ProcessDirectory internally linked
...
These functions aren't used outside of this file, so we can place them
within an anonymous namespace.
2019-11-27 05:26:35 -05:00
Lioncash
a3149536e2
file_sys/directory: Make EntryType an enum class
...
This can trivially be an enum class rather than a regular enum, making
it more strongly typed.
2019-11-27 05:11:02 -05:00
Lioncash
e7e939104b
core/memory; Migrate over SetCurrentPageTable() to the Memory class
...
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.
2019-11-26 21:55:39 -05:00
Lioncash
50a518be69
core/memory: Migrate over GetPointerFromVMA() to the Memory class
...
Now that everything else is migrated over, this is essentially just code
relocation and conversion of a global accessor to the class member
variable.
All that remains is to migrate over the page table.
2019-11-26 21:55:39 -05:00
Lioncash
e4c381b885
core/memory: Migrate over Write{8, 16, 32, 64, Block} to the Memory class
...
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.
2019-11-26 21:55:39 -05:00
Lioncash
b05bfc6036
core/memory: Migrate over Read{8, 16, 32, 64, Block} to the Memory class
...
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.
2019-11-26 21:55:39 -05:00
Lioncash
89ef3ef575
core/memory: Migrate over ZeroBlock() and CopyBlock() to the Memory class
...
These currently aren't used anywhere in the codebase, so these are very
trivial to move over to the Memory class.
2019-11-26 21:55:38 -05:00
Lioncash
849581075a
core/memory: Migrate over RasterizerMarkRegionCached() to the Memory class
...
This is only used within the accelerated rasterizer in two places, so
this is also a very trivial migration.
2019-11-26 21:55:38 -05:00
Lioncash
b2165c6b35
core/memory: Migrate over ReadCString() to the Memory class
...
This only had one usage spot, so this is fairly straightforward to
convert over.
2019-11-26 21:55:38 -05:00
Lioncash
3f08e8d8d4
core/memory: Migrate over GetPointer()
...
With all of the interfaces ready for migration, it's trivial to migrate
over GetPointer().
2019-11-26 21:55:38 -05:00
Lioncash
536fc7f0ea
core: Prepare various classes for memory read/write migration
...
Amends a few interfaces to be able to handle the migration over to the
new Memory class by passing the class by reference as a function
parameter where necessary.
Notably, within the filesystem services, this eliminates two ReadBlock()
calls by using the helper functions of HLERequestContext to do that for
us.
2019-11-26 21:55:37 -05:00
Lioncash
fc7d0a17b6
core/memory: Move memory read/write implementation functions into an anonymous namespace
...
These will eventually be migrated into the main Memory class, but for
now, we put them in an anonymous namespace, so that the other functions
that use them, can be migrated over separately.
2019-11-26 21:53:35 -05:00
Lioncash
e58748fd80
core/memory: Migrate over address checking functions to the new Memory class
...
A fairly straightforward migration. These member functions can just be
mostly moved verbatim with minor changes. We already have the necessary
plumbing in places that they're used.
IsKernelVirtualAddress() can remain a non-member function, since it
doesn't rely on class state in any form.
2019-11-26 21:53:34 -05:00
Lioncash
323680e5ad
core/memory: Migrate over memory mapping functions to the new Memory class
...
Migrates all of the direct mapping facilities over to the new memory
class. In the process, this also obsoletes the need for memory_setup.h,
so we can remove it entirely from the project.
2019-11-26 21:53:34 -05:00
Lioncash
4c2ed2706e
core/memory: Introduce skeleton of Memory class
...
Currently, the main memory management code is one of the remaining
places where we have global state. The next series of changes will aim
to rectify this.
This change simply introduces the main skeleton of the class that will
contain all the necessary state.
2019-11-26 21:53:34 -05:00
bunnei
ec0ce96c56
core_timing: Use better reference tracking for EventType. ( #3159 )
...
* core_timing: Use better reference tracking for EventType.
- Moves ownership of the event to the caller, ensuring we don't fire events for destroyed objects.
- Removes need for unique names - we won't be using this for save states anyways.
2019-11-26 21:48:56 -05:00
bunnei
f6b9b7910e
kernel: Fix reference management for client/server session.
...
- Fixes shutdown crash and crash in Pokemon SwSh.
2019-11-25 18:17:49 -05:00
bunnei
50c7539108
Merge pull request #3094 from lioncash/tables
...
service: Update function tables
2019-11-24 20:30:58 -05:00
bunnei
9046d4a548
kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. ( #3154 )
...
* kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects.
- See https://github.com/citra-emu/citra/pull/4710 for details.
2019-11-24 20:15:51 -05:00
bunnei
63248f4edd
Update svc.cpp
2019-11-23 16:01:06 -05:00
bunnei
6eaf7ab55f
svc: GetSystemTick should return cntpct_el0, not core ticks.
2019-11-23 15:29:15 -05:00
bunnei
6a3fc5d2ff
Merge pull request #3114 from FernandoS27/cond-var
...
Kernel: Correct behavior of Condition Variables to be more similar to real hardware.
2019-11-23 13:24:39 -05:00
bunnei
6e4d46908a
Merge pull request #3130 from FernandoS27/cancel-sync
...
Kernel: Correct Cancel Synchronization.
2019-11-23 13:23:23 -05:00
bunnei
eedb048585
Merge pull request #3112 from lioncash/skip
...
service/am: Remove unnecessary Skip calls
2019-11-21 15:30:01 -05:00
bunnei
d7953b8ee5
Merge pull request #3111 from lioncash/query
...
am: Stub QueryApplicationPlayStatistics
2019-11-21 15:29:34 -05:00
Fernando Sahmkow
46bb609981
Kernel: Optimize condition variable threads management.
2019-11-21 11:13:29 -04:00
Fernando Sahmkow
2ab41ceff4
Kernel: Correct SignalProcessWideKey
...
When the target is 0, all threads must be processed.
2019-11-21 10:46:55 -04:00
Fernando Sahmkow
2d16507f9f
Kernel: Correct behavior of Condition Variables to be more similar to real hardware.
...
This commit ensures cond var threads act exactly as they do in the real
console. The original implementation uses an RBTree and the behavior of
cond var threads is that at the same priority level they act like a
FIFO.
2019-11-21 10:46:55 -04:00
Fernando Sahmkow
7d16b2d2dd
Kernel: Correct Cancel Synchronization.
...
This commit corrects the behavior of cancel synchronization when the
thread is running/ready and ensures the next wait is cancelled as it's
suppose to.
2019-11-16 12:41:51 -04:00
bunnei
3e0e4f146b
Merge pull request #3091 from lioncash/core-conversion
...
core: Make most implicit type conversion warnings errors on MSVC
2019-11-15 12:08:50 -05:00
Lioncash
2c4c2b5eee
service/am: Remove unnecessary Skip calls
...
We can simplify these by wrapping the necessary members in structs and
then simply reading out the whole struct.
2019-11-14 16:31:52 -05:00
Lioncash
1cd8637bf0
am: Stub QueryApplicationPlayStatistics
...
Maintains implementation parity between QueryApplicationPlayStatistics
and QueryApplicationPlayStatisticsByUid.
These function the same behaviorally underneath the hood, with the only
difference being that one allows specifying a UID.
2019-11-14 16:02:39 -05:00
bunnei
885d88825e
Merge pull request #3089 from SciresM/play_statistics
...
Implement stub for IApplicationFunctions::QueryApplicationPlayStatisticsByUid
2019-11-14 13:54:29 -05:00
bunnei
360b0d1b30
Merge pull request #3093 from lioncash/mbedtls
...
core: Migrate off deprecated mbedtls functions
2019-11-14 13:47:23 -05:00
bunnei
02880a8195
Merge pull request #3092 from lioncash/util
...
key_manager: Make use of IOFile in WriteKeyToFile()
2019-11-14 13:46:55 -05:00
Lioncash
03b73aa575
xts_archive: Remove redundant std::string constructor
...
We can just call the .data() member of path instead of constructing a
completely new string.
2019-11-13 10:02:10 -05:00
Lioncash
e21b6ff79d
service: Update function tables
...
Keeps the function tables up to date.
Updated based off information from Switchbrew.
2019-11-12 10:32:56 -05:00
Lioncash
64cbebc58f
key_manager: Make use of IOFile in WriteKeyToFile()
...
This properly handles unicode-based paths on Windows, while opening a
raw stream doesn't out-of-the-box.
Prevents file creation from potentially failing on Windows PCs that make
use of unicode characters in their save paths (e.g. writing to a user's
AppData folder, where the user has a name with non-ASCII characters).
2019-11-12 08:52:18 -05:00
Lioncash
e0c46e6879
core: Migrate off deprecated mbedtls functions
...
These functions are marked for deprecation and it's recommended that the
*_ret variants be used instead.
2019-11-12 08:45:56 -05:00
Lioncash
47a6bb2d5b
externals: Update httplib
...
Since the introduction of this library, numerous improvements have been
made. Notably, many of the warnings we would get by simply including the
library header have now been fixed. This makes it much easier to make
conversion warning an error.
2019-11-12 08:31:27 -05:00
Lioncash
f11b87ebf1
service: Resolve sign conversion errors
...
These are fairly trivial to resolve and most of the changes entail
using RESULT_UNKNOWN over ResultCode(-1).
2019-11-12 07:55:39 -05:00
Lioncash
75dec14f21
perf_stats: Resolve implicit int to double conversion error
...
We simply need to turn the literal argument to std::accumulate into a
double, rather than an int.
2019-11-12 07:55:39 -05:00
Lioncash
23878bf360
loader; Resolve sign conversion/truncation errors
2019-11-12 07:55:39 -05:00
Lioncash
86a1eb7789
gdbstub: Resolve sign conversion errors
2019-11-12 07:55:39 -05:00
Lioncash
12dc918937
kernel: Resolve sign conversion warnings
...
Uncovered a bug within Thread's SetCoreAndAffinityMask() where an
unsigned variable (ideal_core) was being compared against "< 0", which
would always be a false condition.
We can also get rid of an unused function (GetNextProcessorId) which contained a sign
mismatch warning.
2019-11-12 07:55:39 -05:00
Lioncash
86c397dd6e
file_sys: Resolve sign conversion warnings
...
Resolves a few trivial sign conversion/mismatch errors.
2019-11-12 07:55:39 -05:00
Lioncash
ef060ed40c
result: Add default error code for the ResultCode(-1) case
...
Will be used to reduce the overall duplication of the same magic value
all over the codebase in following changes.
2019-11-12 07:55:38 -05:00
Lioncash
581d2e36e5
crypto: Resolve sign-conversion warnings
2019-11-12 07:55:22 -05:00
Lioncash
27ab99490e
result: Resolve sign-coversion warnings
...
The constructor was implicitly using signed->unsigned conversions to
produce 0xFFFFFFFF. We can just specify this explicitly with UINT32_MAX.
2019-11-12 07:06:48 -05:00
Lioncash
19a0abc19b
arm_unicorn: Resolve sign conversion warnings
...
While we're at it, this also resolves a type truncation warning as well,
given the code was truncating from a 64-bit value to a 32-bit one.
2019-11-12 07:06:48 -05:00
Lioncash
96d677bef0
CMakeLists: Make most implicit type conversion warnings errors on MSVC
...
Quite frequently there have been cases where code has been merged into
the core that produces warning. In order to prevent this from occurring,
we can make the compiler flag these cases and allow our CI to flag down
any code that would generate these warnings.
This is beneficial given silent conversions from signed/unsigned can
result in logic bugs. This forces one writing changes to be explicit
about when signedness conversions are desirable, rather than leaving it
up to readers' interpretation.
Currently the codebase isn't in a state where it will build successfully
with this change applied, but this will be addressed in subsequent
follow-up changes. This set of changes will focus on making it build
properly with these changes for MSVC as a starting point for basic
coverage.
2019-11-12 07:06:25 -05:00
Michael Scire
b0b0786493
Implement stub for QueryApplicationPlayStatisticsByUid
2019-11-11 07:32:47 -08:00
Fernando Sahmkow
3c95e49c42
nifm: Only return that there's an internet connection when there's a BCATServer
...
This helps games that need internet for other purposes boot as the rest
of our internet infrastructure is incomplete.
2019-11-06 23:10:32 -05:00
bunnei
c1a3d19897
Merge pull request #3062 from bunnei/event-improve
...
kernel: Improve events
2019-11-06 10:05:50 -05:00
David
0e34f648f4
Merge pull request #2859 from Morph1984/hid
...
hid: Stub SetNpadJoyAssignmentModeSingle and GetNpadHandheldActivationMode
2019-11-06 12:48:07 +11:00
bunnei
1bdae0fe29
common_func: Use std::array for INSERT_PADDING_* macros.
...
- Zero initialization here is useful for determinism.
2019-11-03 22:22:41 -05:00
bunnei
ece5287843
kernel: readable_event: Signal only once.
2019-11-03 04:25:41 -05:00
bunnei
b0ab803ce8
kernel: events: Remove ResetType::Automatic.
...
- This does not actually seem to exist in the real kernel - games reset these automatically.
# Conflicts:
# src/core/hle/service/am/applets/applets.cpp
# src/core/hle/service/filesystem/fsp_srv.cpp
2019-11-03 04:22:45 -05:00
bunnei
28bb248db6
kernel: readable_event: Initialize members.
2019-11-03 04:18:39 -05:00
FearlessTobi
832c138eff
core/am: Stub InitializeApplicationCopyrightFrameBuffer, SetApplicationCopyrightImage and SetApplicationCopyrightVisibility
...
These commands require Screenshots to be implemented anyway, so they are safe to stub for now.
2019-11-03 07:37:38 +01:00
Rodrigo Locatti
04b838c857
Merge pull request #3038 from lioncash/docs
...
kernel/scheduler: Minor changes
2019-10-30 03:47:28 +00:00
bunnei
a81bd962ab
Merge pull request #3007 from DarkLordZach/fsc-regress
...
savedata_factory: Automatically create certain savedata
2019-10-29 22:05:09 -04:00
Lioncash
6c8f28813c
scheduler: Mark parameter of AskForReselectionOrMarkRedundant() as const
...
This is only compared against, so it can be made const.
2019-10-27 23:35:50 -04:00
Lioncash
f19c1a7cda
scheduler: Silence sign conversion warnings
2019-10-27 22:44:52 -04:00
Lioncash
2fb0bbff29
scheduler: Initialize class members directly where applicable
...
Reduces the overall amount of code.
2019-10-27 22:13:55 -04:00
Lioncash
2dc469ceba
scheduler: Amend documentation comments
...
Adjusts the formatting of a few of the comments an ensures they get
recognized as proper Doxygen comments.
2019-10-27 22:12:32 -04:00
David
4c5731c34f
Merge pull request #2971 from FernandoS27/new-scheduler-v2
...
Kernel: Implement a New Thread Scheduler V2
2019-10-28 10:53:27 +11:00
bunnei
6fe89acf0d
Merge pull request #2991 from lioncash/npad
...
hid/npad: Minor cleanup
2019-10-22 19:51:24 -04:00
Zach Hilman
bb207fe27a
savedata_factory: Automatically create certain savedata
...
After further hardware investigation, it appears that some games, perhaps those more lazily coded, will not call EnsureSaveData, meaning that they expect the normal (current) save to be automatically made. Additionally, some games do not create a cache or temporary save before use.
In these 3 specific instances, the save is created automatically for the game if it doesn't exist.
2019-10-22 15:47:38 -04:00
bunnei
a86a88109a
core: Fix clang-format errors.
2019-10-19 14:47:18 -04:00
Nicolae-Andrei Cociorba
20521da259
Fix null pointer deref.
2019-10-18 14:12:12 +00:00
bunnei
d1713ad451
Merge pull request #2992 from lioncash/dmnt
...
dmnt_cheat_vm: Correct register Restore and ClearRegs behavior
2019-10-17 19:52:24 -04:00
Lioncash
2c34d8aabb
dmnt_cheat_vm: Correct register Restore and ClearRegs behavior
...
Previously these were performing the same behavior as the Save and
ClearSaved opcode types.
2019-10-17 18:49:39 -04:00
Rodrigo Locatti
7cf091bb20
Merge pull request #2989 from lioncash/apm
...
service/apm/controller: Minor interface changes
2019-10-17 19:20:14 -03:00
Lioncash
8d8e495248
hid/npad: Fix incorrect connection boolean value in ConnectAllDisconnectedControllers()
...
We should be setting the connection state to true, otherwise we aren't
actually making the controllers connected like the function name
indicates.
2019-10-17 18:19:47 -04:00
Lioncash
d076466f26
hid/npad: Add missing break in default case
...
While not an issue, it does prevent fallthrough from occurring if
anything is ever added after this case (unlikely to occur, but this
turns a trivial "should not cause issues" into a definite "won't cause
issues).
2019-10-17 18:17:42 -04:00
Lioncash
26c84718c8
hid/npad: Replace std::for_each with ranged for loops
...
Performs the same behavior, but is built into the core language itself.
No functional change.
2019-10-17 18:16:36 -04:00
Lioncash
e433e99191
hid/npad: Remove redundant non-const variant of IsControllerSupported()
...
The const qualified variant can also be called in non-const contexts, so
we can remove the non-const variant to eliminate a bit of code
duplication.
2019-10-17 18:11:41 -04:00
Lioncash
a71e8066a1
hid/npad: Move function declarations
...
Clearly separate these from the variable declarations to make them more
visible.
2019-10-17 18:09:08 -04:00
Lioncash
98c6a95079
core/core: Resolve -Wreorder warnings
...
Amends the initializer lists to be ordered in the same manner that
they're declared within the class.
2019-10-17 17:51:06 -04:00
Lioncash
6414d9e2e5
core/memory/cheat_engine: Resolve -Wreorder warnings
...
Amends the initializer lists to be ordered in the same manner that
they're declared within the class.
2019-10-17 16:21:47 -04:00
Lioncash
b77430df70
apm/controller: Make SetPerformanceConfiguration() use an array of pairs over a map
...
While a map is an OK way to do lookups (and usually recommended in most
cases), this is a map that lives for the entire duration of the program
and only deallocates its contents when the program terminates.
Given the total size of the map is quite small, we can simply use a
std::array of pairs and utilize std::find_if to perform the same
behavior without loss of performance.
This eliminates a static constructor and places the data into the
read-only segment.
While we're at it, we can also handle malformed inputs instead of
directly dereferencing the resulting iterator.
2019-10-17 16:13:14 -04:00
Lioncash
141d929929
apm/controller: Make GetCurrentPerformanceMode() a const member function
...
This doesn't modify instance state, so it can be made const qualified.
2019-10-17 15:58:25 -04:00
bunnei
ef9b31783d
Merge pull request #2912 from FernandoS27/async-fixes
...
General fixes to Async GPU
2019-10-16 10:34:48 -04:00
bunnei
2299950de1
Merge pull request #2972 from lioncash/system
...
{bcat, gpu, nvflinger}: Remove trivial usages of the global system accessor
2019-10-15 17:49:12 -04:00
Lioncash
cc1d7048b5
bcat: Remove use of global system accessors
...
Removes all uses of the global system accessor within the BCAT
interface.
2019-10-15 16:39:27 -04:00
Fernando Sahmkow
64e652d8cb
Kernel Thread: Cleanup THREADPROCESSORID_DONT_UPDATE.
2019-10-15 11:55:30 -04:00
Fernando Sahmkow
e28c7f5217
Kernel: Address Feedback 2
2019-10-15 11:55:28 -04:00
Fernando Sahmkow
a3524879be
Kernel: Clang Format
2019-10-15 11:55:27 -04:00
Fernando Sahmkow
c32520ceb7
Kernel: Reverse global accessor removal.
2019-10-15 11:55:26 -04:00
Fernando Sahmkow
3073615dbc
Kernel: Address Feedback.
2019-10-15 11:55:25 -04:00
Fernando Sahmkow
25f8606a6d
Kernel Scheduler: Make sure the global scheduler shutdowns correctly.
2019-10-15 11:55:24 -04:00
Fernando Sahmkow
b3c1deba49
Kernel_Thread: Eliminate most global accessors.
2019-10-15 11:55:23 -04:00
Fernando Sahmkow
0b72b34d89
KernelSVC: Assert that condition variable address is aligned to 4 bytes.
2019-10-15 11:55:22 -04:00
Fernando Sahmkow
96b1b144af
Kernel: Correct Paused scheduling
2019-10-15 11:55:21 -04:00
Fernando Sahmkow
1c6a11ab14
Kernel: Corrections to Wait Objects clearing in which a thread could still be signalled after a timeout or a cancel.
2019-10-15 11:55:20 -04:00
Fernando Sahmkow
27d571c084
Kernel: Correct redundant yields to only advance time forward.
2019-10-15 11:55:20 -04:00
Fernando Sahmkow
7176857177
Kernel: Corrections to ModifyByWaitingCountAndSignalToAddressIfEqual
2019-10-15 11:55:19 -04:00
Fernando Sahmkow
44e09e5f21
Kernel: Correct Results in Condition Variables and Mutexes
2019-10-15 11:55:18 -04:00
Fernando Sahmkow
1ec1e81373
Kernel: Clang Format
2019-10-15 11:55:17 -04:00
Fernando Sahmkow
e05a8c2385
Kernel: Remove global system accessor from WaitObject
2019-10-15 11:55:16 -04:00
Fernando Sahmkow
0cf26cee59
Scheduler: Implement Yield Count and Core migration on Thread Preemption.
2019-10-15 11:55:16 -04:00
Fernando Sahmkow
2d382de6fa
Scheduler: Corrections to YieldAndBalanceLoad and Yield bombing protection.
2019-10-15 11:55:15 -04:00
Fernando Sahmkow
b49c0dab87
Kernel: Initial implementation of thread preemption.
2019-10-15 11:55:14 -04:00
Fernando Sahmkow
103f3a2fe5
Scheduler: Add protections for Yield bombing
...
In case of redundant yields, the scheduler will now idle the core for
it's timeslice, in order to avoid continuously yielding the same thing
over and over.
2019-10-15 11:55:13 -04:00
Fernando Sahmkow
82218c925a
Kernel: Style and Corrections
2019-10-15 11:55:12 -04:00
Fernando Sahmkow
fcc6b34fff
Correct PrepareReschedule
2019-10-15 11:55:12 -04:00
Fernando Sahmkow
3a94e7ea33
Comment and reorganize the scheduler
2019-10-15 11:55:11 -04:00
Fernando Sahmkow
b5d1e44782
Add PrepareReschedule where required.
2019-10-15 11:55:10 -04:00
Fernando Sahmkow
b8b7ebcece
Correct compiling errors and addapt to the new interface.
2019-10-15 11:55:09 -04:00
Fernando Sahmkow
9031502974
Correct Supervisor Calls to work with the new scheduler,
2019-10-15 11:55:08 -04:00
Fernando Sahmkow
47c6c78c03
Redesign CPU Cores to work with the new scheduler
2019-10-15 11:55:07 -04:00
Fernando Sahmkow
57a71f899a
Add interfacing to the Global Scheduler
2019-10-15 11:55:07 -04:00
Fernando Sahmkow
a1ac0c6cb4
Addapt thread class to the new Scheduler
2019-10-15 11:55:06 -04:00
Fernando Sahmkow
b164d8ee53
Implement a new Core Scheduler
2019-10-15 11:55:04 -04:00
bunnei
cab2619aeb
Merge pull request #2965 from FernandoS27/fair-core-timing
...
Core Timing: Rework Core Timing to run all cores evenly.
2019-10-15 11:48:30 -04:00
bunnei
0378babd15
Merge pull request #2897 from DarkLordZach/oss-ext-fonts-1
...
pl_u: Move open source font archives and fix NAND error
2019-10-14 15:13:41 -04:00
bunnei
cd2efed922
Merge pull request #2930 from DarkLordZach/gamecard-partitions
...
file_sys: Add code to access raw gamecard partitions and lazily load them
2019-10-14 10:29:10 -04:00
Zach Hilman
e0b9ee9b94
card_image: Implement system update commands in XCI
2019-10-13 14:18:45 -04:00
Zach Hilman
1911f85391
pl_u: Fix mismatched rebase size error in font encryption
2019-10-13 13:46:27 -04:00
Zach Hilman
36d829c27b
pl_u: Use kernel physical memory
2019-10-13 13:46:27 -04:00
Zach Hilman
b3a8a094a5
pl_u: Remove excess static qualifier
2019-10-13 13:46:27 -04:00
Zach Hilman
40284c6868
pl_u: Use OSS system archives if real archives don't exist
2019-10-13 13:46:27 -04:00
Zach Hilman
920742d418
system_archive: Synthesize shared fonts system archives
2019-10-13 13:46:10 -04:00
Zach Hilman
d6d6a87bde
externals: Move OSS font data to file_sys in core
2019-10-13 13:46:10 -04:00
Lioncash
574440d59f
nvflinger/buffer_queue: Remove use of a global system accessor
2019-10-12 09:17:56 -04:00
Fernando Sahmkow
a4ae11d63e
Core_Timing: Address Remaining feedback.
2019-10-12 07:26:38 -04:00
Fernando Sahmkow
e0650a2034
Core_Timing: Address Feedback and suppress warnings.
2019-10-11 14:44:14 -04:00
Fernando Sahmkow
96f2b16356
Core Timing: Correct Idle and remove lefting pragma
2019-10-09 12:30:33 -04:00
Fernando Sahmkow
65aff6930b
Core Timing: General corrections and added tests.
2019-10-09 12:30:33 -04:00
Fernando Sahmkow
555866f8dc
Core Timing: Rework Core Timing to run all cores evenly.
2019-10-09 12:30:31 -04:00
bunnei
e664c24355
Merge pull request #2921 from FreddyFunk/compiler-warnings-core
...
Services::ES fix casting warnings
2019-10-09 10:34:48 -04:00
bunnei
b9c831de62
Merge pull request #2654 from DarkLordZach/lm-log-rewrite
...
lm: Rewrite logger to use core reporting services
2019-10-08 20:23:13 -04:00
Morph
29e15601f3
hid: Implement DeactivateNpad
...
Makes use of the already existing DeactivateController function.
2019-10-07 04:44:09 -07:00
Morph
c1e9ca4c08
hid: Stub SetNpadJoyAssignmentModeSingle and reorganize service commands
2019-10-07 04:43:34 -07:00
Zach Hilman
5326d3cb3a
Merge pull request #2951 from lioncash/global
...
core: Remove Core::CurrentProcess()
2019-10-06 20:47:48 -04:00
Lioncash
0705ce0ed1
bcat/module: Silence truncation warnings
...
We need to perform explicit casts here, otherwise we're implicitly
truncating a 64-bit type to a 32-bit one.
2019-10-06 15:38:12 -04:00
Lioncash
7e77d1593f
bcat: Take std::function instance by value in NullBackend's constructor
...
Without this, the std::move within the constructor initializer list
won't be able to actually perform a move.
2019-10-06 15:38:12 -04:00
Lioncash
81adf46d1d
bcat: In-class initialize ProgressServiceBackend's impl member
...
Allows us to remove a constructor initializer list.
2019-10-06 15:38:12 -04:00
Lioncash
3fcd2180e4
bcat: Make ProgressServiceBackend's constructor take a std::string_view
...
Given the string is appended to another, we can make it a view so a
redundant full copy of the string isn't made.
2019-10-06 15:38:09 -04:00
Lioncash
f2fa16b609
bcat: Make ProgressServiceBackend's GetEvent() const
...
This member function doesn't modify internal member state, so it can be
marked const.
2019-10-06 14:03:18 -04:00
Lioncash
329081fcb7
boxcat: Silence an unused variable warning
...
On parse errors, we can log out the explanatory string indicating what
the parsing error was, rather than just ignoring the variable and
returning an overly broad error code.
2019-10-06 14:00:32 -04:00
Lioncash
839b38c404
core/core: Remove unused header
...
This isn't used anywhere in either the cpp or header file.
2019-10-06 13:54:27 -04:00
Lioncash
f1382cf0e7
core: Remove Core::CurrentProcess()
...
This only encourages the use of the global system instance (which will
be phased out long-term). Instead, we use the direct system function
call directly to remove the appealing but discouraged short-hand.
2019-10-06 13:53:12 -04:00
Lioncash
69f16ba50e
hle/service: Replace global system instance calls with instance-based ones
...
Migrates the HLE service code off the use of directly accessing the
global system instance where trivially able to do so.
This removes all usages of Core::CurrentProcess from the service code,
only 8 occurrences of this function exist elsewhere. There's still quite
a bit of "System::GetInstance()" being used, however this was able to
replace a few instances.
2019-10-06 13:42:23 -04:00
Fernando Sahmkow
75395605d6
NvFlinger: Remove leftover from corrections and clang format.
2019-10-04 19:59:54 -04:00
Fernando Sahmkow
3f104464de
Core: Wait for GPU to be idle before shutting down.
2019-10-04 19:59:53 -04:00
Fernando Sahmkow
69fa2e6525
Nvdrv: Correct Event setup in Nvdrv
...
Events are supposed to be cleared on quering. This fixes that issue.
2019-10-04 19:59:52 -04:00
Fernando Sahmkow
782b7a0ca4
NVFlinger: Reverse the change that only signaled events on buffer acquire.
...
This has been hardware tested and it seems that NVFlinger will still
signal even if there are no buffers to present.
2019-10-04 19:59:51 -04:00
Fernando Sahmkow
ffc2ce89a0
Nvdrv: Do framelimiting only in the CPU Thread
2019-10-04 19:59:50 -04:00
Fernando Sahmkow
976d9ef43c
NvFlinger: Don't swap buffers if a frame is missing and always trigger event in sync gpu.
2019-10-04 19:59:49 -04:00
Fernando Sahmkow
5b5e60ffec
GPU_Async: Correct fences, display events and more.
...
This commit uses guest fences on vSync event instead of an articial fake
fence we had.
It also corrects to keep signaling display events while loading the game
as the OS is suppose to send buffers to vSync during that time.
2019-10-04 19:59:48 -04:00
Fernando Sahmkow
4e9f975935
Nvdrv: Correct Async regression and avoid signaling empty buffer vsyncs
2019-10-04 19:59:47 -04:00
ReinUsesLisp
25ee892d5e
audio/audout_u: Change formatting for old clang-format versions
2019-10-04 23:51:56 +00:00
ReinUsesLisp
8d0b1a957e
service/nvdrv: Silence -Wswitch
2019-10-04 23:41:22 +00:00
ReinUsesLisp
5c907f85fc
service/nfp: Silence -Wunused and -Wswitch
2019-10-04 23:41:22 +00:00
ReinUsesLisp
0759df0aff
service/hid: Silence -Wunused and -Wswitch
2019-10-04 23:41:22 +00:00
ReinUsesLisp
ab6f8d8a1e
service/am: Silence -Wreorder
2019-10-04 23:41:21 +00:00
ReinUsesLisp
634c6e24b0
service/hid: Remove unused system reference
2019-10-04 23:41:21 +00:00
ReinUsesLisp
1dbd22e695
service/friend: Remove unused field
2019-10-04 23:41:21 +00:00
ReinUsesLisp
99db7d23dd
service/filesystem: Silence -Wunused-variable
2019-10-04 23:41:21 +00:00
ReinUsesLisp
8566096794
service/bcat: Silence -Wreorder and -Wunused
2019-10-04 23:41:21 +00:00
ReinUsesLisp
87e7cc2d5a
service/audio: Silence -Wunused
2019-10-04 23:28:34 +00:00
ReinUsesLisp
aacb473aa2
service/apm: Silence -Wunused and -Wreorder
2019-10-04 23:28:34 +00:00
bunnei
7fbaf62bac
Merge pull request #2936 from VPeruS/use-isallzeroarray
...
[crypto] Use IsAllZeroArray helper function
2019-10-04 15:44:35 -04:00
David
9aac7fbc22
Merge pull request #2539 from DarkLordZach/bcat
...
bcat: Implement BCAT service and connect to yuzu Boxcat server
2019-10-03 19:06:13 +10:00
vperus
29b1d0db0f
[crypto] Use IsAllZeroArray helper function
2019-10-02 19:20:45 +03:00
Zach Hilman
e55d086cc9
qt: Add service dialog
2019-10-02 08:35:43 -04:00
Zach Hilman
5d86c52a3a
boxcat: Use updated game-asset API URL and tags
2019-10-01 09:13:31 -04:00
Zach Hilman
19c466dfb1
bcat: Add FSC accessors for BCAT data
...
Ports BCAT to use FSC interface
2019-10-01 09:13:09 -04:00
Zach Hilman
bcf1eafb8b
boxcat: Implement events global field
2019-09-30 17:28:23 -04:00
Zach Hilman
2d410ddf4d
bcat: Implement DeliveryCacheProgressImpl structure
...
Huge thanks to lioncash for re-ing this for me.
2019-09-30 17:27:23 -04:00
Zach Hilman
92b70a3bf9
boxcat: Use Etag header names for file digest
2019-09-30 17:27:23 -04:00
Zach Hilman
e8183f9ef0
boxcat: Add downloading and client for launch parameter data
2019-09-30 17:27:23 -04:00
Zach Hilman
b8ce87103d
bcat: Add backend function for BCAT Indirect (launch parameter)
...
Returns the data that should be returned by PopLaunchParameter kind=ApplicationSpecific.
2019-09-30 17:27:23 -04:00
Zach Hilman
ea17b294ea
bcat: Expose CreateBackendFromSettings helper function
2019-09-30 17:27:23 -04:00
Zach Hilman
fe8c7e66e2
am: Unstub PopLaunchParameter and add bcat connection for app-specific data
...
Previously we were simply returning the account-preselect structure all times but if passed with a different mode the game expects application-specific data. This also adds a hook for BCAT into this allowing us to send the launch parameter through bcat,
2019-09-30 17:27:23 -04:00
Zach Hilman
102db206e0
bcat: Implement cmd 90201 ClearDeliveryCacheStorage
...
Takes a title ID and simply deletes all the data for that title ID's bcat. Invokes the respective backend command.
2019-09-30 17:23:26 -04:00
Zach Hilman
1bde5a3c6a
bcat: Implement cmd 30100 SetPassphrase
...
Takes a title ID and passphrase (0x40 byte string) and passes it to the backend.
2019-09-30 17:23:26 -04:00
Zach Hilman
86773a7f08
bcat: Implement cmd RequestSyncDeliveryCache and variant
...
Variant also supports only updating a single directory. These just both invoke backend commands.
2019-09-30 17:23:26 -04:00
Zach Hilman
cb7c96b96a
bcat: Implement IDeliveryCacheProgressService commands
...
Used to query completion status and events for the current delivery task.
2019-09-30 17:23:26 -04:00
Zach Hilman
f352ad5c93
bcat: Implement IDeliveryCacheFileService commands
...
Used to read the contents of files and access their metadata.
2019-09-30 17:23:26 -04:00
Zach Hilman
8812018c1d
bcat: Implement IDeliveryCacheDirectoryService commands
...
Used to list and get directories at the root level.
2019-09-30 17:23:26 -04:00
Zach Hilman
862131ead9
bcat: Implement IDeliveryCacheStorageService commands
...
Used to create subclasses to manage files and directories and to list directories.
2019-09-30 17:23:26 -04:00
Zach Hilman
78d146f907
bcat: Add commands to create IDeliveryCacheStorageService
...
Used to access contents of download.
2019-09-30 17:23:26 -04:00
Zach Hilman
68658a8385
module: Create BCAT backend based upon Settings value on construction
2019-09-30 17:23:26 -04:00
Zach Hilman
2903f3524e
bcat: Add BCAT backend for Boxcat service
...
Downloads content from yuzu servers and unpacks it into the temporary directory provided. Fully supports all Backend features except passphrase.
2019-09-30 17:21:53 -04:00
Zach Hilman
2c0b75a744
bcat: Add backend class to generify the functions of BCAT
...
Provides the most abstract simplified functions of BCAT as functions. Also includes a NullBackend class which is just a no-op.
2019-09-30 17:21:53 -04:00
Zach Hilman
647992e666
settings: Add option to set BCAT backend
2019-09-30 17:21:53 -04:00
Zach Hilman
532ec459b8
nifm: Signal to applications that internet access is available
2019-09-30 17:21:53 -04:00
Zach Hilman
f6c53526b3
core/loader: Track the NSO build ID of the current process
2019-09-30 17:21:53 -04:00
Zach Hilman
943662dc3c
applets: Add accessor for AppletFrontendSet
...
Allows other services to call applets without using LLE.
2019-09-30 17:20:49 -04:00
Zach Hilman
f2073217a4
filesystem: Add getter for BCAT temporary directory
2019-09-30 17:20:49 -04:00
Zach Hilman
c00ed8f4ff
vfs: Add function to extract ZIP file into virtual filesystem
2019-09-30 17:18:38 -04:00
bunnei
dc29919bbe
Revert "arm_dynarmic: Check if jit is nullptr when preparing reschedule"
2019-09-29 21:54:19 -04:00
bunnei
28538bba9c
Merge pull request #2574 from DarkLordZach/dynarmic-jit-nullptr
...
arm_dynarmic: Check if jit is nullptr when preparing reschedule
2019-09-29 21:44:10 -04:00
FreddyFunk
7b93c4646a
Services::ES fix casting warnings
2019-09-29 22:45:09 +02:00
David Marcec
77fbf29047
Signal styleset changes at a better time
...
We should signal when a net controller is added and our event should be manual, not automatic.
2019-09-24 17:24:37 +10:00
Zach Hilman
c4f3400bea
card_image: Add accessors for raw partitions in XCI
2019-09-22 21:51:46 -04:00
Zach Hilman
3952c73aee
card_image: Lazily load partitions in XCI
2019-09-22 21:50:29 -04:00
Zach Hilman
3895f7e456
pfs: Provide accessors for file sizes and offsets
2019-09-22 21:44:36 -04:00
Zach Hilman
6212df3beb
lm: Flush manager output on core shutdown
2019-09-22 12:34:55 -04:00
Zach Hilman
fa6531ab0f
lm: Rename Initialize to Log and implement with manager/reporter
...
Allows saving and clearer output of data.
2019-09-22 12:34:55 -04:00