Fernando S
50192eb4ad
Merge pull request #8148 from merryhime/interrupts
...
dynarmic: Better interrupts
2022-04-07 16:21:41 +02:00
Andrea Pappacoda
5ca67332ee
fix: remove #pragma once in .cpp file
2022-04-07 12:03:47 +02:00
bunnei
172137f1a0
Merge pull request #8164 from liamwhite/jit-stub
...
service: jit: stub JIT service
2022-04-06 18:34:45 -07:00
Liam
0cfcee95c7
service: jit: stub JIT service
2022-04-06 20:07:01 -04:00
bunnei
eb8c8db899
Merge pull request #8122 from bunnei/improve-thread-usage
...
Improve usage of service host threads
2022-04-06 12:25:25 -07:00
german77
8c089f4e2a
service: hid: Partially revert #8123
2022-04-05 22:35:38 -05:00
bunnei
12dc4d0527
Merge pull request #8137 from bunnei/improve-nvflinger-2
...
Follow-up fixes for NVFlinger rewrite (Part 2)
2022-04-05 19:11:28 -07:00
bunnei
0c1b954e07
Merge pull request #8100 from Morph1984/registered-crash
...
registered_cache: Prevent nullptr dereference when accumulating files
2022-04-05 18:18:41 -07:00
lat9nq
b976cac49d
k_system_control: Fix data race
...
`return distribution(gen)` is a data race between a read and a write in
two threads, reported by TSan. Remove static random number generators so
they aren't using the same generator.
2022-04-05 19:55:56 -04:00
merry
7f11710e0a
dynarmic: Print stack trace on unrecognised instruction or other exception
2022-04-05 20:40:20 +01:00
bunnei
f114436120
Merge pull request #8089 from merryhime/paranoia
...
configuration: Add Paranoid CPU accuracy level
2022-04-04 11:07:38 -07:00
lat9nq
983916e919
k_auto_object: Fix data race
...
Change the memory order to acqure-release when we decrement the
reference count. Prevents a race with line 89 reported by TSan.
2022-04-03 21:47:58 -04:00
lat9nq
6bcbbb29e7
k_thread: Fix data race
...
TSan reports a data race between writing at cpp:1162 and reading at
h:262. Make the thread_state atomic to prevent this.
2022-04-03 21:47:58 -04:00
lat9nq
d6a0666268
k_process: Fix data race
...
TSan reported a race between thread 36 and thread 34, a read at :225 and
a write at :225 respectively. Make total_proces_running_time_ticks
atomic to avoid this race.
2022-04-03 21:47:57 -04:00
lat9nq
5b5a1b7fa7
kernel: Fix current_process race
...
TSan reported a race at :258 and :803, so make current_process an atomic
pointer.
2022-04-03 21:47:57 -04:00
lat9nq
83b86d915a
k_scheduler_lock: Fix data race
...
TSan reports a race between the main thread and T37 during
IsLockedByCurrentThread and when it's set at the end of Lock(),
respectively. Set owner_thread to an atomic pointer to fix it.
Co-authored-by: bunnei <bunneidev@gmail.com>
2022-04-03 21:47:57 -04:00
merry
a5d040df3d
arm_dynarmic: Use HaltReason for svc calls and reschedules
2022-04-03 18:20:11 +01:00
merry
f8b8af47ad
dynarmic: Better interrupts
2022-04-03 16:39:48 +01:00
bunnei
2d1af6beee
Merge pull request #8135 from Morph1984/websession-hack
...
applets/web: Keep foreground (websession) web applet open
2022-04-02 20:49:51 -07:00
bunnei
b5910ad0ba
Merge pull request #8123 from german77/bombslinger
...
service: hid: Remove inaccurate behavior on initialization
2022-04-02 20:12:45 -07:00
german77
3e5469a974
service: npad: Default initialize shared memory
2022-04-02 19:43:49 -06:00
Andrea Pappacoda
0c214cb5b9
fix: typos
2022-04-02 16:34:07 +02:00
bunnei
fdf4909f97
hle: service: nvflinger: buffer_queue_producer: Cleanup & fixes.
2022-04-01 22:59:35 -07:00
bunnei
4036e37bbe
hle: service: nvflinger: consumer_base: Cleanup & fixes.
2022-04-01 22:58:40 -07:00
bunnei
30b07878ba
hle: service: nvflinger: buffer_queue_producer: Cleanup & add GetReleasedBuffers.
2022-04-01 22:58:02 -07:00
bunnei
7610554b1e
hle: service: nvflinger: buffer_queue_core: Cleanup & fixes.
2022-04-01 22:56:32 -07:00
bunnei
f9371f36a4
hle: service: nvflinger: Use correct logger namespace.
2022-04-01 22:55:44 -07:00
Morph
93f010c988
hle: service: nvdrv: Create a service thread where appropriate.
2022-04-02 01:24:30 -04:00
bunnei
d02bf6dab1
hle: service: vi: Create a service thread where appropriate.
2022-04-02 01:24:30 -04:00
bunnei
99770653bb
hle: service: bsd: Create a service thread where appropriate.
2022-04-02 01:24:30 -04:00
bunnei
2afef2b609
hle: service: filesystem: Create a service thread where appropriate.
2022-04-02 01:24:30 -04:00
bunnei
11120b5b1e
hle: service: audio: Create a service thread where appropriate.
2022-04-02 01:24:30 -04:00
bunnei
bf1750664c
hle: service: Add option for service interfaces to create or use the default thread.
2022-04-02 01:24:30 -04:00
bunnei
864523327f
hle: kernel: Create a default thread for services that do not need their own host thread.
2022-04-02 01:24:30 -04:00
Morph
1166c3910d
applets/web: Keep foreground (websession) web applet open
...
This is a hack to keep the foreground (websession) web applet open in games using these such as Super Mario 3D All-Stars.
2022-04-01 22:50:01 -04:00
Fernando S
078a6cb0cb
Merge pull request #8116 from ameerj/nvhost_ctrl_bad_param
...
nvhost_ctrl: Only mark EventState::Busy as BadParameter
2022-04-01 01:29:46 +02:00
german77
9346f0b33d
service: hid: Remove inaccurate behavior on initialization
2022-03-31 12:35:57 -06:00
bunnei
c6aa4ec687
Merge pull request #8120 from german77/signal
...
service: hid: Signal event on AcquireNpadStyleSetUpdateEventHandle
2022-03-30 22:45:40 -07:00
bunnei
365c6ad753
Merge pull request #8090 from bunnei/fix-skyline
...
Kernel Memory Updates (Part 7): Various fixes to code memory (Skyline support)
2022-03-30 18:23:37 -07:00
Narr the Reg
c04e65c254
service: hid: Signal event on AcquireNpadStyleSetUpdateEventHandle
2022-03-30 17:09:28 -06:00
ameerj
69807dd208
nvhost_ctrl: Only mark EventState::Busy as BadParameter
...
Fixes an svc break in Kirby and the Forgotten Land with async GPU enabled.
2022-03-29 15:13:30 -04:00
Morph
ea7a0d4652
registered_cache: Prevent nullptr dereference when accumulating files
...
For whatever reason, nca_file/dir can be nullptr in the list of files/dirs. I have not determined the cause of this yet, so add a nullptr check for these prior to dereferencing them.
2022-03-27 17:06:27 -04:00
merry
1383441b15
arm_dynarmic_64: Invalidate on all cores
2022-03-27 15:37:19 +01:00
Fernando S
99654721eb
Merge pull request #8088 from bunnei/fixup-nvflinger
...
Follow-up fixes for NVFlinger rewrite
2022-03-27 13:09:59 +02:00
bunnei
af04f8b8e9
Revert "Memory GPU <-> CPU: reduce infighting in the texture cache by adding CPU Cached memory."
2022-03-26 12:38:30 -07:00
bunnei
9408100a80
hle: kernel: k_page_table: Fix implementations of LockForCodeMemory & UnlockForCodeMemory.
2022-03-26 01:49:34 -07:00
bunnei
0c75913bf2
hle: kernel: k_page_table: Implement LockMemoryAndOpen & UnlockMemory.
2022-03-26 01:46:41 -07:00
merry
3c8547160d
configuration: Add Paranoid CPU accuracy level
...
Disables most optimizations for the paranoid.
2022-03-26 08:46:25 +00:00
bunnei
1b3dba329a
hle: kernel: svc: MapProcessMemory: Fix usage of KPageLinkedList to use physical address space.
2022-03-26 01:35:37 -07:00
bunnei
3bc0c2a625
hle: kernel: svc: CreateCodeMemory: Remove log of 'out' host pointer.
...
- This does not seem terribly useful and is inconsistent with other usage.
2022-03-26 01:34:29 -07:00
bunnei
94543f129e
hle: kernel: k_code_memory: Fix usage of KPageLinkedList to use physical address space.
2022-03-26 01:33:16 -07:00
bunnei
5b667f5e52
hle: kernel: k_page_table: Implement MakeAndOpenPageGroup & MakePageGroup.
2022-03-26 01:25:52 -07:00
bunnei
c975a51ae7
hle: kernel: k_page_table: Add IsHeapPhysicalAddress method.
2022-03-26 01:23:43 -07:00
bunnei
f29410d821
hle: kernel: k_page_linked_list: Add Empty method.
2022-03-26 01:02:42 -07:00
bunnei
4e2401c11a
hle: kernel: svc: UnmapProcessCodeMemory: Fix inverted alignment check.
2022-03-26 01:01:55 -07:00
bunnei
664d8c8732
Merge pull request #8041 from Morph1984/inline-swkbd
...
applets/swkbd: Add support for an updated inline software keyboard
2022-03-25 23:19:11 -07:00
bunnei
25faca8ea7
hle: service: nvflinger: buffer_queue: Remove AutoLock and fix free buffer tracking.
2022-03-25 23:01:03 -07:00
bunnei
07c7f96fb2
hle: service: nvflinger: buffer_queue_consumer: Use scoped_lock instead of unique_lock.
2022-03-25 22:59:06 -07:00
bunnei
13aa0a1f24
hle: service: nvflinger: consumer_base: Use scoped_lock instead of unique_lock.
2022-03-25 22:58:52 -07:00
bunnei
741a8c3034
hle: service: nvflinger: Remove unused BufferQueue.
2022-03-25 22:58:23 -07:00
Fernando Sahmkow
a2d7b2f905
Memory: Don't protect reads on Normal accuracy.
2022-03-25 04:24:25 +01:00
bunnei
c64e1ae104
hle: nvflinger: ConsumerBase: Mark ctor as explicit.
2022-03-24 18:13:34 -07:00
bunnei
02dbb2ed54
hle: vi: NativeWindow: Fix trivially copyable issues.
2022-03-24 18:13:34 -07:00
bunnei
c9d28c30f0
hle: nvdrv: nvdata: buffer_queue_producer: Minor cleanup.
2022-03-24 18:13:34 -07:00
bunnei
241ecae867
hle: nvdrv: nvdata: Cleanup NvFence static assert.
2022-03-24 18:13:34 -07:00
bunnei
81eefcaa76
hle: nvflinger: Remove unused unordered_map include.
2022-03-24 18:13:34 -07:00
bunnei
3b13f5e43b
hle: nvflinger: buffer_queue_consumer: AcquireBuffer: Fix typo.
2022-03-24 18:13:34 -07:00
bunnei
4d9488033f
hle: nvflinger: Merge Rect with Common::Rectangle.
2022-03-24 18:13:33 -07:00
bunnei
e524def8c0
hle: nvflinger: buffer_queue_core: Declare default dtor.
2022-03-24 18:13:33 -07:00
bunnei
8e35eedf22
hle: nvflinger: buffer_queue_producer: DequeueBuffer: Remove unnecessary lock.
2022-03-24 18:13:33 -07:00
bunnei
0ce308047e
hle: nvflinger: consumer_base: StillTracking: Should be const.
2022-03-24 18:13:33 -07:00
bunnei
480c79edba
hle: nvflinger: graphic_buffer_producer: Remove unnecessary pragma pack.
2022-03-24 18:13:33 -07:00
bunnei
7db60fe7da
hle: nvflinger: parcel: Reserve token size.
2022-03-24 18:13:33 -07:00
bunnei
ddd5a2b1c6
hle: nvflinger: buffer_queue_core: StillTracking: Take const reference.
2022-03-24 18:13:33 -07:00
bunnei
53058ae73f
hle: nvflinger: buffer_queue_core: Cleanup locking.
2022-03-24 18:13:33 -07:00
bunnei
650c9d0d62
hle: nvflinger: Use std::chrono for present_ns.
2022-03-24 18:13:33 -07:00
bunnei
ca12a77670
hle: nvflinger: Migrate android namespace -> Service::android.
2022-03-24 18:13:33 -07:00
bunnei
5849c9a4cd
hle: nvflinger: BufferQueueProducer: Handle SetPreallocatedBuffer with empty buffer.
...
- Used by Naruto Ultimate Ninja Storm.
2022-03-24 18:13:33 -07:00
bunnei
7f4165fc05
hle: vi: Integrate new NVFlinger and HosBinderDriverServer service.
2022-03-24 18:13:33 -07:00
bunnei
a87812c6a1
hle: nvflinger: Add implementation for HosBinderDriverServer service.
2022-03-24 18:13:33 -07:00
bunnei
56284bff6c
hle: nvflinger: Add implementation for BufferQueueProducer class.
2022-03-24 18:13:33 -07:00
bunnei
bfff7b58fd
hle: nvflinger: Add implementation for BufferQueueCore class.
2022-03-24 18:13:33 -07:00
bunnei
6e7f687df4
hle: nvflinger: Add implementation for BufferQueueConsumer class.
2022-03-24 18:13:32 -07:00
bunnei
41983bc0ca
hle: nvflinger: Add implementation for QueueBufferInput and QueueBufferOutput structs.
2022-03-24 18:13:32 -07:00
bunnei
0057159066
hle: nvflinger: Add implementation for BufferItemConsumer class.
2022-03-24 18:13:32 -07:00
bunnei
79e8cdf595
hle: nvflinger: Add implementation for ConsumerBase class.
2022-03-24 18:13:32 -07:00
bunnei
d25cb12bff
hle: nvflinger: Add implementation for BufferSlot class.
2022-03-24 18:13:32 -07:00
bunnei
c723db39c7
hle: nvflinger: Add implementation for BufferItem class.
2022-03-24 18:13:32 -07:00
bunnei
d13e18a8ed
hle: nvflinger: Move implementation for Parcel to its own header.
2022-03-24 18:13:32 -07:00
bunnei
a454670de5
hle: nvflinger: Add android buffer queue definitions to its own header.
2022-03-24 18:13:32 -07:00
bunnei
fe9945ad6c
hle: nvflinger: Add IBinder interface.
2022-03-24 18:13:32 -07:00
bunnei
b9cbc708e8
hle: nvflinger: Add IConsumerListener interface.
2022-03-24 18:13:32 -07:00
bunnei
81e143a3d2
hle: nvflinger: Add ProducerListener interface.
2022-03-24 18:13:32 -07:00
bunnei
fd24d5a0a2
hle: nvflinger: Add android window enumerations to its own header.
2022-03-24 18:13:32 -07:00
bunnei
05ff9e8d4e
hle: nvflinger: Add android Status flags to its own header.
2022-03-24 18:13:32 -07:00
bunnei
05d80fba38
hle: nvflinger: Move BufferTransformFlags to its own header.
2022-03-24 18:13:32 -07:00
bunnei
402273d91b
hle: nvdrv: Rename Fence to NvFence to avoid naming conflicts.
2022-03-24 18:13:32 -07:00
bunnei
d456b9d554
hle: nvflinger: Move PixelFormat to its own header.
2022-03-24 18:13:32 -07:00
bunnei
5a8b9a9706
hle: nvflinger: Add implementation for GraphicBuffer class.
2022-03-24 18:13:32 -07:00
bunnei
8c27465325
hle: nvflinger: Add implementation for Fence class.
2022-03-24 18:13:32 -07:00
bunnei
d47575f2c5
hle: nvflinger: Add implementation for Rect class.
2022-03-24 18:13:32 -07:00
bunnei
749efbb84b
Merge pull request #8031 from Morph1984/cleanup-mii-please
...
applets: Cleanup MiiEdit applet implementation
2022-03-22 21:56:42 -07:00
bunnei
e439c31c9e
Revert "dynarmic: Reduce size of code caches"
2022-03-22 18:32:54 -07:00
Morph
e6f200b960
applets/swkbd: Split software keyboard initialization
...
Since the CalcArg struct has been updated with a new size and fields, we have to split the initialization of the keyboard into multiple functions.
This also adds support for parsing the new CalcArg struct used by updated versions of Monster Hunter Rise.
2022-03-21 23:58:50 -04:00
Morph
e7c1e6fc27
applets/swkbd: Add new inline software keyboard types
...
These were added in newer firmware versions.
2022-03-21 23:58:50 -04:00
Morph
6e232b9efe
applets/mii: Remove unused include
2022-03-21 23:57:31 -04:00
Morph
bcca849d0c
applets/mii: Remove frontend parameters
...
These are unused for now as we do not support a frontend implementation.
2022-03-21 23:57:31 -04:00
Morph
c50401903f
applets/mii: Cleanup MiiEdit applet implementation
...
This also enables proper support for MiiEdit applets which are used in games with firmware versions prior to 10.2.0 by handling the 2 different versions of applet inputs and outputs.
2022-03-21 23:57:31 -04:00
Morph
1d5f6b173d
applets/mii: Cleanup MiiEdit applet types
2022-03-21 23:57:31 -04:00
Morph
7c44a4ede3
applets/mii: Move MiiEdit applet types into its own file
2022-03-21 23:57:31 -04:00
Morph
aa44ef7b64
service: Move mii enums and structs into its own file
...
Moves these into types.h, since other files also make use of these types.
2022-03-21 23:57:31 -04:00
Morph
e05e6853fa
applets: Rename Mii to MiiEdit
2022-03-21 23:57:31 -04:00
bunnei
82ac66f8a4
Merge pull request #8048 from ameerj/include-purge
...
general: Reduce unused includes across the project
2022-03-21 18:03:54 -07:00
ameerj
866b7c20a8
general: Fix clang/gcc build errors
2022-03-20 02:25:09 -04:00
bunnei
5960d54722
Merge pull request #8040 from Morph1984/handle-table
...
KHandleTable: Optimize table entry layout
2022-03-19 23:17:37 -07:00
ameerj
923decae5a
common: Reduce unused includes
2022-03-19 15:01:31 -04:00
ameerj
ade596121b
core: Reduce unused includes
2022-03-19 02:23:32 -04:00
bunnei
8c8b5359f2
Merge pull request #8028 from v1993/patch-9
...
bsd: Allow inexact match for address length in AcceptImpl
2022-03-18 18:06:13 -07:00
ameerj
d618bba8a6
general: Reduce core.h includes
2022-03-18 02:13:02 -04:00
Morph
8b7d571b66
KHandleTable: Optimize table entry layout
...
Since the handle type is not being used, we can reduce the amount of space each entry takes up by 4 bytes.
2022-03-18 00:28:25 -04:00
bunnei
f55af65e82
Merge pull request #7964 from german77/miiii
...
applet: mii: Simple implementation of mii applet
2022-03-16 21:37:53 -07:00
Valeri
9e633999d6
bsd: Allow inexact match for address length in AcceptImpl
...
Minecraft passes in zero for length, but this should account for all possible cases
2022-03-15 14:06:34 +03:00
bunnei
e95bb782f0
core: hle: kernel: init_slab_setup: Move CalculateSlabHeapGapSize to global namespace.
2022-03-14 18:14:54 -07:00
bunnei
5f3e77d93e
core: hle: kernel: Allocate dummy threads on host thread storage.
...
- Fixes a crash where on subsequent boots, long-lived host threads would have their dummy threads freed.
2022-03-14 18:14:54 -07:00
bunnei
82a2463062
core: hle: kernel: Downgrade dangling objects warning to debug.
...
- It is not impossible to leak kernel objects, so this is not really any issue anymore (albeit, still interesting).
2022-03-14 18:14:54 -07:00
bunnei
f7d1929816
core: hle: kernel: Make object list container global and ensure it is reset on each emulation session.
2022-03-14 18:14:54 -07:00
bunnei
51589c5e21
core: hle: kernel: Remove server session tracking.
...
- These are now allocated/managed by emulated memory, so we do not need to track and free them on shutdown.
2022-03-14 18:14:54 -07:00
bunnei
0defac2f2a
core: hle: kernel: k_process: Remove handle table finalize, reset page table.
2022-03-14 18:14:54 -07:00
bunnei
813b2ef253
core: hle: kernel: k_process: Implement thread local storage accurately.
2022-03-14 18:14:54 -07:00
bunnei
3210bc2767
core: hle: kernel: k_page_table: Add implementations of MapPages, UnmapPages, and FindFreeArea for TLS.
2022-03-14 18:14:54 -07:00
bunnei
15d9b0418f
core: hle: kernel: k_slab_heap: Refresh to use guest allocations.
2022-03-14 18:14:54 -07:00
bunnei
a25cd4bb4b
core: hle: kernel: Update init_slab_heap, use device memory, and add KThreadLocalPage and KPageBuffer.
...
- Refreshes our slab initialization code to latest known behavior.
- Moves all guest kernel slabs into emulated device memory.
- Adds KThreadLocalPage and KPageBuffer, which we will use for accurate TLS management.
2022-03-14 18:14:54 -07:00
bunnei
91819726b1
core: hle: kernel: k_page_buffer: Add KThreadLocalPage primitive.
2022-03-14 18:14:53 -07:00
bunnei
08434842b3
core: hle: kernel: k_page_buffer: Add KPageBuffer primitive.
2022-03-14 18:14:53 -07:00
bunnei
4a28d8cebb
core: hle: kernel: k_thread: Ensure host Fiber is freed.
2022-03-14 18:14:53 -07:00
bunnei
ed67e1dd10
core: hle: kernel: k_server_session: Ensure SessionRequestManager is freed.
2022-03-14 18:14:53 -07:00
bunnei
bfc4823e36
core: hle: service: kernel_helpers: Use system resource limit.
2022-03-14 18:14:53 -07:00
bunnei
8873c0c3db
core: hle: service: sm: Fix KPort reference count.
2022-03-14 18:14:53 -07:00
bunnei
25c0acc388
core: hle: kernel: k_thread: Update to reflect tree changes.
2022-03-14 18:14:53 -07:00
bunnei
07c9d9bdbd
core: hle: kernel: Use weak_ptr where possible for SessionRequestHandler and SessionRequestManager.
2022-03-14 18:14:53 -07:00
bunnei
ce33503adf
core: hle: kernel: k_memory_layout: Update kernel slab memory sizes.
2022-03-14 18:14:53 -07:00
bunnei
0f0e1c25bc
core: hle: kernel: svc_types: Add ThreadLocalRegionSize.
2022-03-14 18:14:53 -07:00
bunnei
944d9186ca
core: hle: kernel: k_condition_variable: Update to reflect tree changes.
2022-03-14 18:14:53 -07:00
bunnei
158c5845ab
core: hle: kernel: k_address_arbiter: Update to reflect tree changes.
2022-03-14 18:14:53 -07:00
Merry
220674d0d6
dynarmic: Reduce size of code caches
2022-03-13 22:17:14 +00:00
bunnei
853e58e593
hle: service: ldr: Use deterministic addresses when mapping NROs.
...
- Instead of randomization, choose in-order addresses for where to map NROs into memory.
- This results in predictable behavior when debugging and consistent behavior when reproducing issues.
2022-03-08 17:38:20 -08:00
bunnei
f2743b41b0
Merge pull request #7986 from lat9nq/vk-callback
...
core, video_core: Fix two crashes when failing to create the emulated GPU instance
2022-03-08 12:36:57 -08:00
bunnei
749f76e6fe
hle: kernel: KPageTable: Improve implementations of MapCodeMemory and UnmapCodeMemory.
...
- This makes these functions more accurate to the real HOS implementations.
- Fixes memory access issues in Super Smash Bros. Ultimate that occur when un/mapping NROs.
2022-03-07 17:18:20 -08:00
lat9nq
1f24a4e520
emu_window: Create a way to Cancel the exit of a Scoped
...
If a GraphicsContext is destroyed before its Scoped is destroyed, this
causes a crash as the Scoped tries to call a method in the destroyed
context on exit.
Add a way to Cancel the call when we know that calling the
GraphicsContext will not work.
2022-03-07 18:21:56 -05:00
lat9nq
381f1dd2c9
core: Don't shutdown a null GPU
...
When CreateGPU fails, yuzu would try and shutdown the GPU instance
regardless of whether any instance was actually created.
Check for nullptr before calling its methods to prevent a crash.
2022-03-07 15:25:20 -05:00