David Marcec
5c1a4ab132
Implement RG32UI and R32UI
...
Needed for xenoblade
2018-08-13 22:55:16 +10:00
bunnei
34cba027e7
Merge pull request #1032 from lioncash/sanitize
...
vfs: Use sanitized paths within MoveFile() and MoveDirectory()
2018-08-13 01:43:35 -04:00
bunnei
faf3494968
Merge pull request #1031 from lioncash/verbosity
...
card_image: Simplify return statement of GetSubdirectories()
2018-08-13 01:42:07 -04:00
bunnei
d2634506a9
Merge pull request #1048 from lioncash/atomic
...
kernel/object: Tighten object against data races
2018-08-13 01:41:23 -04:00
bunnei
adf759103f
Merge pull request #1047 from bunnei/rgba16-uint
...
renderer_opengl: Implement RenderTargetFormat::RGBA16_UINT.
2018-08-13 01:32:26 -04:00
Lioncash
3485963fec
kernel/object: Tighten object against data races
...
Despite being covered by a global mutex, we should still ensure that the
class handles its reference counts properly. This avoids potential
shenanigans when it comes to data races.
Given this is the root object that drives quite a bit of the kernel
object hierarchy, ensuring we always have the correct behavior (and no
races) is a good thing.
2018-08-13 00:16:40 -04:00
bunnei
1d2fdc5a0d
renderer_opengl: Implement RenderTargetFormat::RGBA16_UINT.
...
- Used by Breath of the Wild.
2018-08-13 00:06:22 -04:00
bunnei
f9c5041caa
Merge pull request #1045 from bunnei/rg8-unorm
...
renderer_opengl: Implement RenderTargetFormat::RG8_UNORM.
2018-08-13 00:05:25 -04:00
bunnei
a2fd54f68b
Merge pull request #1044 from bunnei/linestrip
...
maxwell_to_gl: Implement PrimitiveTopology::LineStrip.
2018-08-12 23:21:34 -04:00
bunnei
dcd05b3e87
maxwell_to_gl: Implement PrimitiveTopology::LineStrip.
...
- Used by Breath of the Wild.
2018-08-12 23:09:32 -04:00
bunnei
ad6b0268eb
renderer_opengl: Implement RenderTargetFormat::RG8_UNORM.
...
- Used by Breath of the Wild.
2018-08-12 23:08:50 -04:00
bunnei
a1aacf27d7
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
bunnei
586fcf2742
Merge pull request #1036 from lioncash/thread
...
scheduler: Make HaveReadyThreads() a const member function
2018-08-12 22:13:14 -04:00
bunnei
ef0065ee51
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
bunnei
d9a4224dba
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
bunnei
da26e7673b
Merge pull request #1040 from bunnei/xmad
...
gl_shader_decompiler: Implement XMAD instruction.
2018-08-12 21:56:40 -04:00
Subv
21fa6cb72c
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
Subv
a063b51094
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
Subv
42d6bbcb7c
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
Subv
c51eb8b679
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
Subv
5fe52770ea
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
Subv
cbf854666d
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
bunnei
79945f14af
Merge pull request #1039 from lioncash/type
...
vfs: Make type hierarchy objects classes instead of structs
2018-08-12 18:43:27 -04:00
bunnei
03ac254de6
gl_shader_decompiler: Implement XMAD instruction.
2018-08-12 18:30:24 -04:00
Subv
8f493f43e7
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
Lioncash
cdeac9103f
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
Lioncash
80ac82c9c5
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
bunnei
edeb37b18d
Merge pull request #1025 from ogniK5377/bad-cast
...
Fixed invalid cast in loader
2018-08-12 16:22:35 -04:00
bunnei
5af06e90cc
Merge pull request #1038 from MerryMage/lock-cubeb
...
cubeb_sink: Protect queue with a mutex
2018-08-12 16:22:11 -04:00
MerryMage
c9923e03bb
cubeb_sink: Protect queue with a mutex
2018-08-12 20:41:46 +01:00
bunnei
cc798cfb15
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
bunnei
f6746158e3
Merge pull request #1028 from ogniK5377/aoa
...
Added GetAudioRendererSampleRate, GetAudioRendererSampleCount & GetAudioRendererMixBufferCount
2018-08-12 13:33:08 -04:00
bunnei
53b9e9ce72
Merge pull request #1034 from lioncash/hid
...
hid: Stub DisconnectNpad()
2018-08-12 13:15:56 -04:00
bunnei
c15938965b
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
bunnei
a2c107a773
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
Lioncash
6082427cbd
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
Lioncash
95ff8e6aac
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
Lioncash
9a76374859
thread_queue_list: Convert typedef to a type alias
2018-08-12 12:47:11 -04:00
Markus Wick
d6703d607b
gl_rasterizer: Use a shared helper to upload from CPU memory.
2018-08-12 16:10:26 +02:00
Markus Wick
2d2027cd52
gl_state: Don't track constant buffer mappings.
2018-08-12 16:10:26 +02:00
Markus Wick
a59891f497
gl_rasterizer: Use the stream buffer for constant buffers.
2018-08-12 16:10:26 +02:00
Markus Wick
b4f88b06b5
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
Markus Wick
ca4e2c22d4
gl_rasterizer: Use a helper for aligning the buffer.
2018-08-12 15:47:35 +02:00
Markus Wick
73b40c2bd4
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
David Marcec
b5f7e35139
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
Lioncash
ab4821d4b3
hid: disable clang-format around tables
...
Prevents clang-format from butchering them.
2018-08-12 05:57:33 -04:00
Lioncash
4ca059c59a
hid: Stub DisconnectNpad()
...
This is required by ARMS.
2018-08-12 05:56:28 -04:00
bunnei
d21901f7f2
Merge pull request #1029 from bunnei/fix-out-attrib
...
gl_shader_decompiler: Fix SetOutputAttributeToRegister empty check.
2018-08-12 04:09:41 -04:00
Lioncash
7803b153d8
vfs: Use sanitized paths within MoveFile() and MoveDirectory()
...
Previously these were being unused (or partially unused). While we're at
it, use better naming to make it visibly obvious which variant of the
path is being used.
2018-08-12 04:05:01 -04:00
Lioncash
91c673cac7
card_image: Use type aliases to shorten definitions
...
We have the aliases, so we may as well use 'em.
2018-08-12 03:57:16 -04:00