Commit Graph

4069 Commits

Author SHA1 Message Date
5367bf394c Common/FileUtil: Add Move() function. 2023-02-26 23:17:09 +01:00
884917a6d5 Common/FileUtil: Use non-throwing overload of is_directory() in CreateDir() and CreateFullPath(). 2023-02-24 20:32:19 +01:00
e479f92418 Common/FileUtil: Add CreateDirs() function as a wrapper around std::filesystem::create_directories(). 2023-02-24 20:32:18 +01:00
616d57e7fc Common/FileUtil: Add Copy() function as a wrapper around std::filesystem::copy(). 2023-02-24 20:32:18 +01:00
2c2fb869a2 use std-provided randomness for JitArm64 unittests
decreases runtime significantly and lessens dependency on mbedtls
2023-02-22 12:55:12 -08:00
e52aa52a66 Common/FileUtil: Rename Copy() to CopyRegularFile().
This is to clarify that it can only copy files, not folders.
2023-02-22 11:43:58 +01:00
b381df700c Merge pull request #11577 from JosJuice/android-armeabi-v7a
Android: Fix armeabi-v7a build
2023-02-17 17:57:38 +01:00
90b676d368 Android: Fix armeabi-v7a build
This very much isn't a build configuration that we're going to ship,
but I want to be able to tell people that they can build it on their
own if they really want to see how terribly it performs :)

Just like before, you'll need to edit two lines in app/build.gradle to
define ENABLE_GENERIC=ON and actually enable armeabi-v7a if you want an
armeabi-v7a build. This commit just fixes some compilations errors that
crop up if you do so.
2023-02-17 16:58:24 +01:00
8802f96b7e Fix uninitialized variable warnings (C26495) 2023-02-15 19:18:39 -08:00
0758e00cfe Common/FileUtil: Revert behavior of CreateFullPath().
This was accidentally changed in 7e6436db34.
2023-02-15 02:21:50 +01:00
5f929d00eb Merge pull request #11560 from phire/EventHook_construct_on_first_use
HookableEvent: Switch to construct on first use
2023-02-14 01:01:03 +01:00
8f91cb62e6 Merge pull request #11426 from shuffle2/stdfs
fileutil: use std::filesystem
2023-02-14 00:50:34 +01:00
05181f6b88 HookableEvent: Switch to construct on first use
A registration might happen during static initialization, which opens
us up to issues with ordering of static initialization.
2023-02-13 18:48:43 +13:00
7cecb28bdf DolphinQt: Properly lock CPU before accessing emulated memory
This fixes a problem I was having where using frame advance with the
debugger open would frequently cause panic alerts about invalid addresses
due to the CPU thread changing MSR.DR while the host thread was trying
to access memory.

To aid in tracking down all the places where we weren't properly locking
the CPU, I've created a new type (in Core.h) that you have to pass as a
reference or pointer to functions that require running as the CPU thread.
2023-02-12 11:27:50 +01:00
2f6e7d497d ENetUtil: Add check for valid socket in SendPacket(). 2023-02-10 19:32:40 +01:00
258151fe5a Merge pull request #11523 from degasus/OGL_KHR_subgroup
VideoBackend/OGL: Prefer KHR_shader_subgroup over NV_shader_thread.
2023-02-10 04:47:20 -05:00
49a84cbc4c Resolve various "no previous declaration" warnings 2023-02-09 16:23:01 -08:00
17d7b75a9b Merge pull request #11544 from jmallach/spng
Allow building against system libspng
2023-02-09 14:47:58 +01:00
4b2aa948e6 VideoBackend/OGL: Prefer KHR_subgroup over NV_shader_thread.
While the NV extension is totally fine, the KHR extension should be able to support more hardware.

For NVIDIA, the hardware either supports both or neither, it just needs a driver from the last two years.
For AMD, the drivers from late 2022-12 seems to bring support for the KHR extension.
For Intel, the KHR is also supported for some years.
2023-02-09 13:27:02 +01:00
aaad0cd39f Merge pull request #11539 from phire/improve_workqueuethread
Various WorkQueueThread improvements
2023-02-09 20:00:04 +13:00
ccf92a3e56 Merge pull request #11522 from phire/KillRendererWithFire
Kill Renderer (with phire)
2023-02-09 19:59:16 +13:00
59a4b026f6 Better documentation for HookableEvent. 2023-02-09 18:36:20 +13:00
8c8bd0e7ac Rename to HookableEvent. Because naming conflict 2023-02-09 18:36:20 +13:00
60f2b5af7b Apply suggestions from code review
Co-authored-by: Mai <mathew1800@gmail.com>
Co-authored-by: BhaaL <bhaalsen@gmail.com>
Co-authored-by: iwubcode <iwubcode@users.noreply.github.com>
2023-02-09 18:36:20 +13:00
43b6a49012 Apply suggestions from code review
Co-authored-by: Mai <mathew1800@gmail.com>
2023-02-09 18:36:20 +13:00
31cfe8250d Lint fixes 2023-02-09 18:36:20 +13:00
4d164fcb77 Allow building against system libspng 2023-02-06 13:30:46 +01:00
2ff155f742 Optimise cond_var predicate order
m_items.empty() is by far the most likely reason for a notification.
2023-02-05 17:20:00 +13:00
271ffde71d Prevent WaitForCompletion shutdown deadlock.
Adjust shutdown order to prevent potential deadlocks
when one thread calls Shutdown, and another calls WaitForCompletion.
2023-02-05 17:17:16 +13:00
9c012b09b3 Address review feedback 2023-02-05 16:52:53 +13:00
7c4fcc30a3 WorkQueueThread: provide name and function at same time 2023-02-04 15:56:27 +13:00
6594532f10 WorkQueueThread: rework Cancel/Shutdown workflow
- Cancel doesn't shut down anymore.
   Allowing it to be used multiple times thoughout the life of
   the WorkQueue
 - Remove Clear, so we only have Cancel semantics
 - Add IsCancelling so work items can abort early if cancelling
 - Replace m_cancelled and m_thread.joinable() guars with m_shutdown.
 - Rename Flush to WaitForCompletion (As it's ambiguous if a function
   called flush should be blocking or not)
 - Add documentation
2023-02-04 14:58:12 +13:00
acdb0c5be1 WorkQueueThread: Implement thread name
Otherwise we will end up with a dozen threads named "WorkQueueThread"
2023-02-04 14:58:12 +13:00
94a0c50bf8 WorkQueueThread: Rework without Flags/Events 2023-02-04 14:31:16 +13:00
9affbfe683 WorkQueueThread: Implement proper Flush
and rename the existing Flush to FlushOne.
2023-02-04 14:31:16 +13:00
9badcc6eb8 WorkQueueThread: Add Push 2023-02-04 14:31:16 +13:00
512273a507 WorkQueueThread: Add flush capability 2023-02-04 14:31:16 +13:00
7240290382 CommonPaths: Add Steam-specific user directory 2023-01-31 17:57:09 -05:00
59a44bea50 CommonPaths: Split platform-specific definitions for user directories into two blocks 2023-01-31 17:57:09 -05:00
af33d4f13f CommonPaths: Split PORTABLE_USER_DIR into "portable" and "embedded" to accomodate macOS 2023-01-31 17:57:09 -05:00
7f962a4146 UICommon: Use NORMAL_USER_DIR for Windows 2023-01-31 17:57:09 -05:00
5e3d77adae CommonPaths: Rename DOLPHIN_DATA_DIR to NORMAL_USER_DIR 2023-01-31 17:57:08 -05:00
846eef2a05 CommonPaths: Rename USERDATA_DIR to PORTABLE_USER_DIR 2023-01-31 17:57:08 -05:00
854a73dee0 CMake/MSVC: Fix PCH disabled build 2023-01-31 23:21:07 +13:00
154cb4f722 Introduce an Event system to VideoCommon
A lot of the remaining complexity in Renderer is the massive Swap function
which tries to handle a bunch of FrameBegin/FrameEnd events.

Rather than create a new place for it. This event system will try
to distribute it all over the place
2023-01-31 19:41:24 +13:00
cdd3e636e1 Common/Network: Resolve -Wexpansion-to-defined warning
Macros that expand to include the standard define macro are undefined.
This is pretty trivial to fix. We can just do the test and then define
the name itself if it's true, rather than making the set of definition
checks the macro itself.
2023-01-30 14:20:56 -05:00
37859ec1da Cleanup: Remove CDUtils
This is a cleaning followup for #11456.
2023-01-28 03:50:57 -08:00
bbdfb4bc14 CodeTrace: Avoid ppcState global. 2023-01-27 15:22:45 +01:00
be8d0b76ca PowerPC: Remove PC macro. 2023-01-27 15:22:41 +01:00
0d93a31a38 Common/BitSet: Zero initialize data member
Gets rid of the need to remember to initialize them in the constructor,
except when overriding the default initializer.
2023-01-25 04:16:30 -05:00