Commit Graph

7906 Commits (baaafbd5ea7fe74b75c2f97df9b4faf458795ecf)
 

Author SHA1 Message Date
bunnei baaafbd5ea
Merge pull request #1047 from bunnei/rgba16-uint
renderer_opengl: Implement RenderTargetFormat::RGBA16_UINT.
7 years ago
bunnei bdf17fe0cc renderer_opengl: Implement RenderTargetFormat::RGBA16_UINT.
- Used by Breath of the Wild.
7 years ago
bunnei 54ef9302a2
Merge pull request #1045 from bunnei/rg8-unorm
renderer_opengl: Implement RenderTargetFormat::RG8_UNORM.
7 years ago
bunnei e56a444da9
Merge pull request #1044 from bunnei/linestrip
maxwell_to_gl: Implement PrimitiveTopology::LineStrip.
7 years ago
bunnei 8fe118bcaa maxwell_to_gl: Implement PrimitiveTopology::LineStrip.
- Used by Breath of the Wild.
7 years ago
bunnei c56a0e3c34 renderer_opengl: Implement RenderTargetFormat::RG8_UNORM.
- Used by Breath of the Wild.
7 years ago
bunnei fecffeb0dd
Merge pull request #1043 from Subv/timing
Use an approximated amortized amount of ticks when advancing timing.
7 years ago
bunnei 9608f51cde
Merge pull request #1036 from lioncash/thread
scheduler: Make HaveReadyThreads() a const member function
7 years ago
bunnei e4ed5bc836
Merge pull request #1042 from Subv/races
Fixed a bunch of race conditions when running in multicore mode.
7 years ago
bunnei de5d431eec
Merge pull request #1041 from Subv/duplicated_mutex
Kernel/Mutex: Don't duplicate threads in the mutex waiter list.
7 years ago
bunnei 8da753ab81
Merge pull request #1040 from bunnei/xmad
gl_shader_decompiler: Implement XMAD instruction.
7 years ago
Subv 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).
7 years ago
Subv 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.
7 years ago
Subv 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.
7 years ago
Subv 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.
7 years ago
Subv 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.
7 years ago
Subv 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.
7 years ago
bunnei a970709d5d
Merge pull request #1039 from lioncash/type
vfs: Make type hierarchy objects classes instead of structs
7 years ago
bunnei 534abf9d97 gl_shader_decompiler: Implement XMAD instruction. 7 years ago
Subv 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.
7 years ago
Lioncash b82b093108 vfs: Make VfsFilesystem constructor explicit
Makes it consistent with the other VFS interfaces and prevents implicit
construction.
7 years ago
Lioncash 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.
7 years ago
bunnei 424e90f0f5
Merge pull request #1025 from ogniK5377/bad-cast
Fixed invalid cast in loader
7 years ago
bunnei e12a07079e
Merge pull request #1038 from MerryMage/lock-cubeb
cubeb_sink: Protect queue with a mutex
7 years ago
MerryMage fcc5ffdfdd cubeb_sink: Protect queue with a mutex 7 years ago
bunnei 4cafc24a4e
Merge pull request #1035 from ogniK5377/audio-dev-revision-info
GetAudioDeviceServiceWithRevisionInfo (Used by Bloodstained: Curse of the Moon)
7 years ago
bunnei 68c44ca0ee
Merge pull request #1028 from ogniK5377/aoa
Added GetAudioRendererSampleRate, GetAudioRendererSampleCount & GetAudioRendererMixBufferCount
7 years ago
bunnei e858a72a22
Merge pull request #1034 from lioncash/hid
hid: Stub DisconnectNpad()
7 years ago
bunnei 4db8acd30a
Merge pull request #1030 from bunnei/sdl2-2.0.8
externals: Update to SDL2-2.0.8.
7 years ago
bunnei b8c1dca62f
Merge pull request #1006 from degasus/stream_buffer
GL renderer: Pick the streambuffer from citra and use them.
7 years ago
Lioncash e850ff63bc scheduler: Make HaveReadyThreads() a const member function
This function doesn't modify instance state, so the const qualifier can
be added to it.
7 years ago
Lioncash 11470f331a thread_queue_list: Make contains() and get_first() const member functions
These don't directly modify the contained data.
7 years ago
Lioncash 55c73e10a7 thread_queue_list: Convert typedef to a type alias 7 years ago
Markus Wick 0eb39922f6 gl_rasterizer: Use a shared helper to upload from CPU memory. 7 years ago
Markus Wick 0af7e93763 gl_state: Don't track constant buffer mappings. 7 years ago
Markus Wick 6ff7906ddc gl_rasterizer: Use the stream buffer for constant buffers. 7 years ago
Markus Wick 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.
7 years ago
Markus Wick 6f6bba3ff1 gl_rasterizer: Use a helper for aligning the buffer. 7 years ago
Markus Wick d7298ec262 Update the stream_buffer helper from Citra.
Please see https://github.com/citra-emu/citra/pull/3666 for more details.
7 years ago
David Marcec 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.
7 years ago
Lioncash 63a70c253e hid: disable clang-format around tables
Prevents clang-format from butchering them.
7 years ago
Lioncash 9e74d6238e hid: Stub DisconnectNpad()
This is required by ARMS.
7 years ago
bunnei 5926fbd3d7
Merge pull request #1029 from bunnei/fix-out-attrib
gl_shader_decompiler: Fix SetOutputAttributeToRegister empty check.
7 years ago
bunnei eb2633f3ef externals: Update to SDL2-2.0.8. 7 years ago
bunnei 639ebb39f6 gl_shader_decompiler: Fix SetOutputAttributeToRegister empty check. 7 years ago
bunnei cb3c50eacc
Merge pull request #922 from lioncash/cmake
CMakeLists: Change MSVC14 variable to MSVC_VERSION
7 years ago
David Marcec 094f6003e0 Pushed the requested sample rate instead of our fixed sample rate 7 years ago
David Marcec 98b940052c made ResultStatus a u16 7 years ago
David Marcec 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
7 years ago
bunnei a70ad9b5bb
Merge pull request #1026 from ogniK5377/retro-city-rampage
Stub UpdateUserPresence
7 years ago