c56a0e3c34
renderer_opengl: Implement RenderTargetFormat::RG8_UNORM.
...
- Used by Breath of the Wild.
2018-08-12 23:08:50 -04:00
fecffeb0dd
Merge pull request #1043 from Subv/timing
...
Use an approximated amortized amount of ticks when advancing timing.
2018-08-12 22:31:55 -04:00
9608f51cde
Merge pull request #1036 from lioncash/thread
...
scheduler: Make HaveReadyThreads() a const member function
2018-08-12 22:13:14 -04:00
e4ed5bc836
Merge pull request #1042 from Subv/races
...
Fixed a bunch of race conditions when running in multicore mode.
2018-08-12 22:05:48 -04:00
de5d431eec
Merge pull request #1041 from Subv/duplicated_mutex
...
Kernel/Mutex: Don't duplicate threads in the mutex waiter list.
2018-08-12 22:02:03 -04:00
8da753ab81
Merge pull request #1040 from bunnei/xmad
...
gl_shader_decompiler: Implement XMAD instruction.
2018-08-12 21:56:40 -04:00
d923766042
CPU/Timing: Use an approximated amortized amount of ticks when advancing timing.
...
We divide the number of ticks to add by the number of cores (4) to obtain a more or less rough estimate of the actual number of ticks added. This assumes that all 4 cores are doing similar work. Previously we were adding ~4 times the number of ticks, thus making the games think that time was going way too fast.
This lets us bypass certain hangs in some games like Breath of the Wild.
We should modify our CoreTiming to support multiple cores (both running in a single thread, and in multiple host threads).
2018-08-12 20:41:28 -05:00
a9877c8f65
Kernel/SVC: Don't reschedule the current core when creating a new thread.
...
The current core may have nothing to do with the core where the new thread was scheduled to run. In case it's the same core, then the following PrepareReshedule call will take care of that.
2018-08-12 20:38:37 -05:00
2e7802ad7d
Core/HLE: Make the 'reschedule_pending' flag atomic.
...
Another thread may write to this variable while the core in question is in the middle of checking for a reschedule request.
2018-08-12 18:41:12 -05:00
3a338d9286
CPU/HLE: Lock the HLE mutex before performing a reschedule.
...
Another thread might be in the middle of an SVC, thus altering the state of the schedulers.
2018-08-12 18:41:11 -05:00
84b542c386
Kernel/Threads: Lock the HLE mutex when executing the wakeup callback.
...
Another thread might be in the middle of a reschedule, thus altering the state of the schedulers.
2018-08-12 18:41:11 -05:00
0135b328ed
Kernel/Thread: Always use the threadsafe option when scheduling wakeups.
...
WakeAfterDelay might be called from any host thread, so err on the side of caution and use the thread-safe CoreTiming::ScheduleEventThreadsafe.
Note that CoreTiming is still far from thread-safe, there may be more things we have to work on for it to be up to par with what we want.
2018-08-12 18:40:56 -05:00
a970709d5d
Merge pull request #1039 from lioncash/type
...
vfs: Make type hierarchy objects classes instead of structs
2018-08-12 18:43:27 -04:00
534abf9d97
gl_shader_decompiler: Implement XMAD instruction.
2018-08-12 18:30:24 -04:00
5224cc49c4
Kernel/Mutex: Don't duplicate threads in the mutex waiter list.
...
Exit from AddMutexWaiter early if the thread is already waiting for a mutex owned by the owner thread.
This accounts for the possibility of a thread that is waiting on a condition variable being awakened twice in a row.
Also added more validation asserts.
This should fix one of the random crashes in Breath Of The Wild.
2018-08-12 16:35:27 -05:00
b82b093108
vfs: Make VfsFilesystem constructor explicit
...
Makes it consistent with the other VFS interfaces and prevents implicit
construction.
2018-08-12 16:55:40 -04:00
cf0a7cd1c1
vfs: Make type hierarchy objects classes instead of structs
...
struct should be used when the data type is very simple or otherwise has
no invariants associated with it. Given these are used to form a
hierarchy, class should be used instead.
2018-08-12 16:55:40 -04:00
424e90f0f5
Merge pull request #1025 from ogniK5377/bad-cast
...
Fixed invalid cast in loader
2018-08-12 16:22:35 -04:00
e12a07079e
Merge pull request #1038 from MerryMage/lock-cubeb
...
cubeb_sink: Protect queue with a mutex
2018-08-12 16:22:11 -04:00
fcc5ffdfdd
cubeb_sink: Protect queue with a mutex
2018-08-12 20:41:46 +01:00
4cafc24a4e
Merge pull request #1035 from ogniK5377/audio-dev-revision-info
...
GetAudioDeviceServiceWithRevisionInfo (Used by Bloodstained: Curse of the Moon)
2018-08-12 14:56:11 -04:00
68c44ca0ee
Merge pull request #1028 from ogniK5377/aoa
...
Added GetAudioRendererSampleRate, GetAudioRendererSampleCount & GetAudioRendererMixBufferCount
2018-08-12 13:33:08 -04:00
e858a72a22
Merge pull request #1034 from lioncash/hid
...
hid: Stub DisconnectNpad()
2018-08-12 13:15:56 -04:00
4db8acd30a
Merge pull request #1030 from bunnei/sdl2-2.0.8
...
externals: Update to SDL2-2.0.8.
2018-08-12 13:15:04 -04:00
b8c1dca62f
Merge pull request #1006 from degasus/stream_buffer
...
GL renderer: Pick the streambuffer from citra and use them.
2018-08-12 13:14:42 -04:00
e850ff63bc
scheduler: Make HaveReadyThreads() a const member function
...
This function doesn't modify instance state, so the const qualifier can
be added to it.
2018-08-12 12:55:58 -04:00
11470f331a
thread_queue_list: Make contains() and get_first() const member functions
...
These don't directly modify the contained data.
2018-08-12 12:54:14 -04:00
55c73e10a7
thread_queue_list: Convert typedef to a type alias
2018-08-12 12:47:11 -04:00
0eb39922f6
gl_rasterizer: Use a shared helper to upload from CPU memory.
2018-08-12 16:10:26 +02:00
0af7e93763
gl_state: Don't track constant buffer mappings.
2018-08-12 16:10:26 +02:00
6ff7906ddc
gl_rasterizer: Use the stream buffer for constant buffers.
2018-08-12 16:10:26 +02:00
ce722e317b
gl_rasterizer: Use the streaming buffer itself for the constant buffer.
...
Don't emut copies, especially not for data, which is used once. They just end in a huge GPU overhead.
2018-08-12 15:48:59 +02:00
6f6bba3ff1
gl_rasterizer: Use a helper for aligning the buffer.
2018-08-12 15:47:35 +02:00
d7298ec262
Update the stream_buffer helper from Citra.
...
Please see https://github.com/citra-emu/citra/pull/3666 for more details.
2018-08-12 15:47:35 +02:00
66f4f86a82
GetAudioDeviceServiceWithRevisionInfo
...
As we're not handling any anything about the revision data for GetAudioDeviceServiceWithRevisionInfo, it's currently marked as stubbed. However for games this shouldn't affect the result. Proper revision info would be more for homebrew.
2018-08-12 22:47:39 +10:00
63a70c253e
hid: disable clang-format around tables
...
Prevents clang-format from butchering them.
2018-08-12 05:57:33 -04:00
9e74d6238e
hid: Stub DisconnectNpad()
...
This is required by ARMS.
2018-08-12 05:56:28 -04:00
5926fbd3d7
Merge pull request #1029 from bunnei/fix-out-attrib
...
gl_shader_decompiler: Fix SetOutputAttributeToRegister empty check.
2018-08-12 04:09:41 -04:00
eb2633f3ef
externals: Update to SDL2-2.0.8.
2018-08-12 02:42:10 -04:00
639ebb39f6
gl_shader_decompiler: Fix SetOutputAttributeToRegister empty check.
2018-08-12 02:22:42 -04:00
cb3c50eacc
Merge pull request #922 from lioncash/cmake
...
CMakeLists: Change MSVC14 variable to MSVC_VERSION
2018-08-12 01:18:32 -04:00
094f6003e0
Pushed the requested sample rate instead of our fixed sample rate
2018-08-12 14:58:36 +10:00
98b940052c
made ResultStatus a u16
2018-08-12 14:56:22 +10:00
e5ee0afe6f
Added GetAudioRendererSampleRate, GetAudioRendererSampleCount & GetAudioRendererMixBufferCount
...
GetAudioRendererSampleRate is set as a "STUB" as a game could check if the sample rate it sent and the sample rate it wants don't match. Just a thought of something which could happen so keeping it as stub for the mean time
2018-08-12 14:46:12 +10:00
a70ad9b5bb
Merge pull request #1026 from ogniK5377/retro-city-rampage
...
Stub UpdateUserPresence
2018-08-12 00:25:57 -04:00
3f81c38c6d
Merge pull request #1027 from bunnei/fix-kil
...
gl_shader_decompiler: Fix GLSL compiler error with KIL instruction.
2018-08-12 00:25:44 -04:00
c68aa65226
gl_shader_decompiler: Fix GLSL compiler error with KIL instruction.
2018-08-12 00:06:48 -04:00
ecfbe7d9c8
Stub UpdateUserPresence
...
Needed for Retro City Rampage to go in game
2018-08-12 14:00:44 +10:00
a1fb8a331f
Fixed invalid cast in loader
...
GetMessageForResultStatus takes a u16, not a size_t.
2018-08-12 13:31:15 +10:00
a921d22545
Merge pull request #1022 from bunnei/fix-splat
...
Several Friend service fixes
2018-08-11 22:42:45 -04:00