Commit graph

7440 commits

Author SHA1 Message Date
ReinUsesLisp
92ca4929f5 common/common_funcs: Rename INSERT_UNION_PADDING_{BYTES,WORDS} to _NOINIT
INSERT_PADDING_BYTES_NOINIT is more descriptive of the underlying behavior.
2021-01-15 16:27:28 -03:00
german
b92717bec6 Always initialize keyboard input 2021-01-15 09:05:17 -06:00
german
df1070a735 Add mutitouch support for touch screens 2021-01-15 09:05:17 -06:00
german
f452fbfc88 Allow to return up to 16 touch inputs per engine 2021-01-15 09:05:17 -06:00
german
2aa888b7e3 Allow all touch inputs at the same time and remove config options that are not longer necesary 2021-01-15 09:05:17 -06:00
german
29cf5313da Add multitouch support 2021-01-15 09:03:39 -06:00
Lioncash
d5bff783bd common/bit_util: Replace CLZ/CTZ operations with standardized ones
Makes for less code that we need to maintain.
2021-01-15 02:15:32 -05:00
ReinUsesLisp
d7b2d16fc4 core/cmake: Remove Werror flags already defined code-base wide 2021-01-15 03:39:24 -03:00
bunnei
e89be18c79 hle: kernel: thread: Preserve thread wait reason for debugging only.
- This is decoupled from core functionality and used for debugging only.
2021-01-11 14:23:17 -08:00
bunnei
42b25c1a2c hle: kernel: k_scheduler_lock: Fix shadowing errors. 2021-01-11 14:23:16 -08:00
bunnei
6cbeabce0d core: arm: arm_interface: Fix shadowing errors. 2021-01-11 14:23:16 -08:00
bunnei
7f4d928f77 core: hle: Add missing calls to MicroProfileOnThreadExit. 2021-01-11 14:23:16 -08:00
bunnei
e5cfd63ba4 core: hle: Integrate new KConditionVariable and KAddressArbiter implementations. 2021-01-11 14:23:16 -08:00
bunnei
8f3987d3df core: hle: kernel: Update KAddressArbiter. 2021-01-11 14:23:16 -08:00
bunnei
75610701a3 core: hle: kernel: Update KConditionVariable. 2021-01-11 14:23:16 -08:00
bunnei
c37b0da7d0 core: hle: kernel: Begin moving common SVC defintions to its own header. 2021-01-11 14:23:16 -08:00
bunnei
02071333ca hle: kernel: Remove unnecessary AddressArbiter definition. 2021-01-11 14:23:16 -08:00
bunnei
99a3953705 hle: kernel: k_scheduler: Cleanup OnThreadPriorityChanged. 2021-01-11 14:23:16 -08:00
bunnei
818ff3901a hle: kernel: Rename thread "status" to "state". 2021-01-11 14:23:16 -08:00
bunnei
9744afa8b1 hle: kernel: thread: Replace ThreadStatus/ThreadSchedStatus with a single ThreadState.
- This is how the real kernel works, and is more accurate and simpler.
2021-01-11 14:23:16 -08:00
bunnei
d103a3656b core: hle: kernel: Add some useful functions for checking kernel addresses. 2021-01-11 14:23:16 -08:00
bunnei
f3f7d42d63 core: hle: kernel: svc_types: Add type definitions for KAddressArbiter. 2021-01-11 14:23:16 -08:00
bunnei
2feb4d56e9 core: hle: kernel: Update KSynchronizationObject. 2021-01-11 14:23:16 -08:00
bunnei
eafd021b14 core: hle: kernel: Begin moving common SVC results to its own header. 2021-01-11 14:23:16 -08:00
bunnei
a45d39c9d6 hle: service: nfp: Remove incorrect signaling behavior in GetDeviceState. 2021-01-11 14:23:16 -08:00
bunnei
af8f4d3635 Merge pull request #5312 from german77/overclockenabled
apm: Stub IsCpuOverclockEnabled
2021-01-10 14:30:13 -08:00
ReinUsesLisp
d27f026a50 file_sys/registered_cache: Silence virtual functions without override warnings 2021-01-09 00:04:12 -03:00
ReinUsesLisp
53cf598783 core: Silence unhandled enum in switch warnings 2021-01-08 23:21:07 -03:00
german
b28282edab Stub IsCpuOverclockEnabled 2021-01-08 09:44:56 -06:00
ameerj
30f3faf3e2 fix for nvdec disabled, cleanup host1x 2021-01-07 14:33:45 -05:00
ameerj
762de858e6 nvdec syncpt incorporation
laying the groundwork for async gpu, although this does not fully implement async nvdec operations
2021-01-07 14:33:45 -05:00
ReinUsesLisp
5e3be575ad core: Enforce C4715 (not all control paths return a value) 2021-01-05 04:18:40 -03:00
ReinUsesLisp
64d9ef5e7a core: Silence warnings when compiling without asserts 2021-01-05 04:18:16 -03:00
ameerj
2faecc2720 buffer_queue: Protect queue_sequence list access with a mutex
fixes a data race as this is an unprotected variable manipulated by multiple threads
2021-01-04 01:36:41 -05:00
Lioncash
fb9624da9d main: Resolve error string not displaying
During the transition to make the error dialog translatable, I
accidentally got rid of the conversion to ResultStatus, which prevented
operator<< from being invoked during formatting.

This adds a function to directly retrieve the result status string
instead so that it displays again.
2021-01-03 13:18:04 -05:00
bunnei
98c455451f Merge pull request #5278 from MerryMage/cpuopt_unsafe_inaccurate_nan
dynarmic: Add Unsafe_InaccurateNaN optimization
2021-01-03 03:27:29 -08:00
bunnei
a86ae9fa3c hle: service: nvflinger: buffer_queue: Do not reset id/layer_id on Connect.
- This behavior is a mistake, fixes Katana Zero.
2021-01-02 15:42:16 -08:00
MerryMage
c535205f1c dynarmic: Add Unsafe_InaccurateNaN optimization 2021-01-02 20:13:21 +00:00
Morph
23413c0d44 general: Fix various spelling errors 2021-01-02 10:23:41 -05:00
MerryMage
e3490b55c1 memory: Remove MemoryHook 2021-01-01 11:34:38 +00:00
bunnei
f1195d12cc Merge pull request #5249 from ReinUsesLisp/lock-free-pages
core/memory: Read and write page table atomically
2021-01-01 02:54:01 -08:00
bunnei
41e8f75c82 Merge pull request #5208 from bunnei/service-threads
Service threads
2020-12-30 22:06:05 -08:00
ReinUsesLisp
d719dc7688 service/pcie: Fix invalid initialization argument 2020-12-30 02:58:38 -03:00
ReinUsesLisp
8bfa4d6dbf core/memory: Read and write page table atomically
Squash attributes into the pointer's integer, making them an uintptr_t
pair containing 2 bits at the bottom and then the pointer. These bits
are currently unused thanks to alignment requirements.

Configure Dynarmic to mask out these bits on pointer reads.

While we are at it, remove some unused attributes carried over from
Citra.

Read/Write and other hot functions use a two step unpacking process that
is less readable to stop MSVC from emitting an extra AND instruction in
the hot path:

 mov         rdi,rcx
 shr         rdx,0Ch
 mov         r8,qword ptr [rax+8]
 mov         rax,qword ptr [r8+rdx*8]
 mov         rdx,rax
-and         al,3
 and         rdx,0FFFFFFFFFFFFFFFCh
 je          Core::Memory::Memory::Impl::Read<unsigned char>
 mov         rax,qword ptr [vaddr]
 movzx       eax,byte ptr [rdx+rax]
2020-12-29 21:54:49 -03:00
bunnei
1a96235760 Merge pull request #5247 from comex/xx-concepts
k_priority_queue: Fix concepts use
2020-12-29 16:50:20 -08:00
bunnei
236149a59b hle: kernel: service_thread: Make thread naming more consistent. 2020-12-29 16:46:29 -08:00
bunnei
407d3b7374 hle: kernel: Manage service threads on another thread.
- This is to allow service threads to defer destruction of themselves.
2020-12-29 16:46:29 -08:00
bunnei
f3a274a13f Merge pull request #5246 from comex/xx-include
Add missing include of "core/hle/kernel/kernel.h"
2020-12-29 16:43:17 -08:00
bunnei
127bb064f7 hle: kernel: Manage host thread IDs using TLS.
- Avoids the need to have a large map of host to guest thread IDs.
2020-12-29 15:55:30 -08:00
comex
8be4bd5104 k_priority_queue: Fix concepts use
- For `std::same_as`, add missing include of `<concepts>`.

- For `std::convertible_to`, create a replacement in `common/concepts.h`
  and use that instead.

  This would also be found in `<concepts>`, but unlike `std::same_as`,
  `std::convertible_to` is not yet implemented in libc++, LLVM's STL
  implementation - not even in master.  (In fact, `std::same_as` is the
  *only* concept currently implemented.  For some reason.)
2020-12-29 14:33:41 -05:00