Silent
9f3d3e2b9c
Address WIL todos in UICommon.cpp
2023-02-12 15:05:54 +01:00
Silent
7faf5ea170
Clear the UI after async shader compilation
2022-06-10 17:19:59 +02:00
Silent
dcad3ec892
Allow to interrupt shader precompilation by stopping emulation
2022-06-10 17:11:32 +02:00
Silent
d4b7ed4e38
GameList: Use titles from the Title Database for shortcut creation
...
Makes titles consistent with Dolphin's game list
2021-03-27 19:02:27 +01:00
Silent
0fb8f735e5
GameList: Remove invalid characters when creating a desktop shortcut
...
Fixes shortcut creation for games that have e.g. : in names.
2021-03-27 19:02:27 +01:00
Silent
cb854d7832
AudioCommon/WASAPI: Construct std::thread with invoke semantics instead of a lambda
2021-01-12 19:25:40 +01:00
Silent
11c5150c16
AudioCommon/WASAPI: Factorize device enumeration logic into a function to greatly reduce code duplication
2021-01-12 19:25:38 +01:00
Silent
c373890505
AudioCommon/WASAPI: Do volume adjustment only when really needed
...
This skips a potentially costly loop if volume is 100% or 0%,
as for former there is no need for volume adjustment,
while latter can be solved by specifying a AUDCLNT_BUFFERFLAGS_SILENT flag
2021-01-12 19:24:49 +01:00
Silent
991b3ba8c2
AudioCommon/WASAPI: Remove thread unsafe nullptr checks giving a false sense of safety
2021-01-12 19:24:49 +01:00
Silent
5dbbf36563
AudioCommon/WASAPI: Use std::string_view where applicable
2021-01-12 19:24:46 +01:00
Silent
7d59ad262f
AudioCommon/WASAPI: Use leaner memory model on m_running, no need for a full barrier
2021-01-12 19:21:54 +01:00
Silent
ee60be4501
AudioCommon/WASAPI: Simplify thread synchronization model by not detaching WASAPI handler thread
2021-01-12 19:21:54 +01:00
Silent
c5a372ab2a
AudioCommon/WASAPI: Use WRL/WIL whenever possible
...
This fixes numerous resource leaks, as not every return path cleaned every created resource
Now they are all managed automatically and "commited" to WASAPIStream class fields only
after it's certain they initialized properly
2021-01-12 19:21:22 +01:00
Silent
374629ef30
AudioCommon: Make HandleWinAPI handle all success return values properly, not just S_OK
2021-01-12 19:18:48 +01:00
Silent
bb27da06ae
AudioPane: Do not enable DPL II quality slider with HLE audio on init
2020-04-01 22:40:45 +02:00
Silent
4a438db2c9
Qt/GameListModel: Use native separators in File Path column
2020-03-19 18:03:35 +01:00
Silent
d1f6f12f78
AudioPane: Do not enable Dolby Pro Logic II quality slider if DPLII is disabled
2020-03-06 21:13:45 +01:00
Silent
f52a0aba24
Add Windows Implementation Libraries
2020-02-09 19:01:44 +01:00
Silent
5be9505ab3
Signal DSP thread after unlocking DSP mutex
2019-11-22 23:00:42 +01:00
Silent
e30ff7c327
DSPLLE: Put DSP thread in idle state if it's paused to prevent a deadlock
...
DSP thread is considered "idle" when it signals s_ppc_event and waits for s_dsp_event,
without putting it in this state when m_dsp_thread_mutex is locked it was possible to
create a deadlock between a DSP thread, emulation thread and Qt thread by accessing
Config menu immediately after booting up the game
2019-11-22 22:07:41 +01:00
Silent
85c2841643
Make "Do you want to stop emulation?" application modal and disallow multiple instances at once
...
Fixes numerous issues with this dialog spawning multiple times
and putting Dolphin in a weird state.
2019-11-16 19:51:55 +01:00
Silent
af92a88aa0
UI: Allow to specify modality of ready ModalMessageBoxes
2019-11-16 19:51:00 +01:00
Silent
4daeacba35
Fix malformed manifests
2019-11-11 11:47:10 +01:00
Silent
a68789a70c
D3DCommon: Remove unused GetDebugObjectName and tidy up SetDebugObjectName
2019-11-10 16:07:32 +01:00
Silent
8445644e05
D3DCommon: Migrate few remaining raw pointers to WRL::ComPtr
2019-11-10 16:07:32 +01:00
Silent
a0111628fb
Fixup GameListModel::UpdateGame and columnCount
...
- dataChanged takes "first" and "last" indices inclusive, not exclusive
- columnCount should return 0 for valid parents
2019-10-20 23:07:08 +02:00
Silent
68694e0039
Add signals to enable/disable Refresh button
...
Makes it impossible to spam Refresh button and looks better overall.
2019-10-19 23:15:38 +02:00
Silent
cc6ffef4a1
Add CommandType::BeginRefresh
...
This resolves a race condition when spamming Refresh button,
which would often end up with duplicates game entries for the entire
duration of the session.
2019-10-19 23:07:10 +02:00
Silent
5e7b95db3b
Add missing break to prevent fallthrough
2019-10-19 23:06:58 +02:00
Silent
26ebf5b650
Improvements to WorkQueueThread
...
- Do not use a lambda for std::thread as invoke constructor exists
- Use simpler std::lock_guard wherever possible
- Do not require T to be default constructible
- Move T out of the queue instead of copying
2019-10-08 22:57:33 +02:00
Silent
ea8a3059bf
Enable Win10 long path awareness in manifest files
2019-10-07 22:46:37 +02:00
Silent
45890c20cf
Remove obsolete "Windows compatibility" macros
2019-10-07 22:46:37 +02:00
Silent
689378b435
Move GetModuleName to Common
...
This unifies GetModuleFileName calls between Dolphin and WinUpdater
and allows to gracefully remove MAX_PATH limit from GetExePath
2019-10-07 22:46:36 +02:00
Silent
3b21d32865
Remove MAX_PATH limit from:
...
- GetTempFilenameForAtomicWrite
- SetUserDirectory
2019-10-07 22:45:16 +02:00
Silent
6bfa4fa643
LogWidget: Use FixedSizeQueue for a log messages buffer
...
Messages buffer is intended to be of a fixed capacity (MAX_LOG_LINES),
which cannot be achieved by std::queue unless we manually pop() extra elements.
std::queue uses std::deque internally which most likely results in allocations performed continuously.
FixedSizeQueue keeps a single buffer during its entire lifetime, avoiding any allocations except the ones
performed by stored objects.
2019-08-31 21:18:07 +02:00
Silent
b3969e91d9
FixedSizeQueue: Bugfixes and improvements
...
- Fixed a bug where pushing items over queue's size left it in a corrupted state
- For non-trivial types, have clear() and pop() run destructors
- Added emplace(args...)
- Added empty()
FixedSizeQueue has semantics of a circular buffer,
so pushing items continuously is expected to keep overwriting oldest elements gracefully.
Tests have been updated to verify correctness of a previously bugged behaviour
and to verify correctness of destructing non-trivial types
2019-08-31 21:18:07 +02:00
Silent
b088fc37d5
LogWidget: Do not use QueueOnObject to construct log queue,
...
instead store a std::string constructed from string_view and convert to QString just before appending
2019-08-31 11:59:09 +02:00
Silent
e746d95d01
LogWidget: Stop update timer when log window is invisible so it doesn't continuously update in the background
2019-08-31 11:57:27 +02:00
Silent
7cec8601f1
LogWidget: Remove scrollbar tampering code (doesn't seem to do anything), clear text queue on clearing log
2019-08-31 11:57:07 +02:00
Silent
eb7d42dfe8
LogWidget: Replace QTextEdit with QPlainTextEdit for better performance
...
QTextEdit is heavy, similar in functionality to WordPad,
while QPlainTextEdit is lightweight like Notepad.
Qt documentation recommends using QPlainTextEdit for log viewers,
and it also allows to set automatic cutoff of oldest messages beyond a fixed point,
which we now set to MAX_LOG_LINES (5000)
2019-08-31 10:46:04 +02:00
Silent
eab086b880
ConsoleListenerWin: Properly output console logging in UTF-16 so UTF-8 displays properly
2019-08-31 00:44:44 +02:00
Silent
37ef5a54c9
Core: Use move semantics for Renderer::SaveScreenshot
2019-08-28 19:52:35 +02:00
Silent
ff8f978eaf
Core: Generate screenshot name with timestamps instead of only increasing numbers
2019-08-28 19:52:35 +02:00
Silent
df0ff7f3bb
Enable adapter combo on emulation state change only if adapters are supported by current backend
2019-08-20 20:08:14 +02:00
Silent
fe8c9dfa14
WinUpdater: Properly initialize COM on window thread and release ITaskbarList3 on exit
2019-08-19 22:37:48 +02:00
Silent
23f335ba91
Core/CPU: Make use of type deduction for scoped locks
2019-08-18 17:39:27 +02:00
Silent
2bc9e09456
Core/CPU: Do not yield to UI from CPU methods
...
Core::RunAsCPUThread may be called from Qt signals, and if code yields to UI there
then it results in infinite recursion
2019-08-18 17:39:26 +02:00
Silent
12ac784a41
Fix "Muted%" OSD message when muting sounds via a hotkey
2019-08-17 12:17:09 +02:00
Silent
a35f540e7a
Explicitly enable conformance mode, and remove /Zc:inline because it's a default now
2019-08-15 17:47:55 +02:00
Silent
b6df0bff93
Make --batch run Dolphin in headless mode, provided --exec is also passed
2019-08-11 20:58:04 +02:00
Silent
80e8037e0b
Truly use emplace_back in CommandLineConfigLayerLoader constructor
2019-08-11 20:43:18 +02:00
Silent
8e79705854
WinUpdater: Wait in UI::Init until window is done creating to avoid losing UI::SetVisible signals
2019-08-06 19:24:38 +02:00
Silent
f70efbb963
WinUpdater: Create updater window as hidden by default
...
UpdaterCommon attempts to hide updater window directly after creating,
so creating it hidden avoids the window from showing for a split second
2019-08-05 21:47:05 +02:00
Silent
3fe8ef4c1c
Make alert messages application modal and not window modal,
...
so assertions cannot be interrupted by terminating the application
2019-08-01 22:27:36 +02:00
Silent
48a4b62125
Change Layer code not to create superfluous std::optional entries in LayerMap
2019-08-01 22:22:05 +02:00
Silent
cb4eecde52
Fix race conditions in Config Layers
...
API has been made stricter, layers are now managed with shared pointers,
so using them temporarily increased their reference counters.
Additionally, any s_layers map has been guarded by a read/write lock,
as concurrent write/reads to it were possible.
2019-07-30 22:10:17 +02:00
Silent
baa9636d48
D3D11: Add extra logging to StateCache::Get
2019-07-29 16:48:24 +02:00
Silent
43bfb183c2
D3D11: Show a warning message about unsupported features when switching to D3D11 backend on Windows 7
2019-07-29 16:47:45 +02:00
Silent
ff00873610
D3D11: Query for output merger logic op support and use logic op code only if supported
...
Previously code assumed that if DX11.1 runtime is supported, logic ops will,
but Windows 7 SP1 with a Platform Update supports DX11.1 runtime without logic ops.
This created pretty jarring visual artifacts, which now should be gone OR replaced
with much less jarring errors.
2019-07-29 16:47:39 +02:00
Silent
a6b8e8b9c3
D3D11: Ownership fixes for objects in DXTexture
2019-07-29 16:43:02 +02:00
Silent
77425ef83b
D3D11: Ownership fixes for objects in D3DState
2019-07-29 16:39:21 +02:00
Silent
88db577c17
D3D11: Correctly poll ALL possible AA levels.
2019-07-29 16:39:06 +02:00
Silent
890f781cd0
Factorize software renderer backend switching warning to be fetched from a new GetWarningMessage in video backend - will be needed for DX11.1 feature set warnings
2019-07-26 19:39:07 +02:00
Silent
799c52463e
Fixes for WRL usage - QueryInterface is explicitly mentioned as not to be used with WRL ComPtr
2019-07-26 19:38:58 +02:00
Silent
3529dfd691
Connect numerous QPushButtons to use clicked signal instead of pressed. This unifies UI behaviour more.
2019-07-24 00:18:58 +02:00
Silent
baab660f1c
WinUpdater: Removed MAX_PATH limitation on path to updater, also fixed a wrong size parameter
2019-07-22 19:46:25 +02:00
Silent
94a19ca670
Qt/Updater: Fixed an assert on m_parent->close() (was called from a wrong thread)
2019-07-22 19:30:02 +02:00
Silent
4b03790eda
Core: Fixup AutoUpdateChecker::TriggerUpdate on Windows:
...
- Properly close handles if Updater.exe process spawns successfully
- Fix STARTUPINFO sizeof typo
2019-07-22 19:29:50 +02:00
Silent
a00dfeecf0
WinUpdater: Properly account for failure in WaitForPID
2019-07-22 19:29:22 +02:00
Silent
d355abaf0c
WinUpdater: Improved exit synchronization on Windows - now joins a thread instead of using flags to signal
2019-07-22 19:28:20 +02:00
Silent
3f1ba830e7
UpdaterCommon: Remove manual UI::Stop() calls in favour of a scope guard to ensure it's called on all return paths
2019-07-22 19:16:22 +02:00
Silent
2ae409ba06
WinUpdater: Replaced PeekMessage with GetMessage - removes a busy loop in favour of a proper wait based message queue
2019-07-22 19:16:14 +02:00
Silent
518d96ad48
Remove duplicated "Ignore and countinue?"
2019-07-21 15:36:24 +02:00
Silent
7045c68327
When clicking "Ignore for this session", make message box handler return true, so asserts can actually be skipped with this option
2019-07-20 21:04:27 +02:00
Silent
e792a67dc6
Improve thread safety and remove an unnecessary string allocation from MsgAlert
...
s_msg_handler still seems thread unsafe, not sure if it should be or not
2019-07-20 21:03:45 +02:00
Silent
09aadf0e9c
Fix CPU Clock Override checkbox not updating with GameINI - also bold it if it's overriden
2019-06-23 22:39:26 +02:00
Silent
5f0b4d8da5
Fix a crash in DSPTool on malformed command line
2019-06-23 21:55:51 +02:00
Silent
9eab3feddf
Fix out of bounds read in HttpRequest::Impl::Fetch logging
2019-06-23 21:44:51 +02:00
Silent
6c21811090
Make DolphinAnalytics a true singleton - static local variables are initialized in a thread safe manner since C++11
...
Also works around a Visual Studio 2017 bug where static inline class fields are destructed multiple times
2019-06-23 21:43:47 +02:00