summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--externals/microprofile/microprofileui.h4
-rw-r--r--src/audio_core/renderer/performance/performance_manager.cpp1
-rw-r--r--src/common/atomic_helpers.h1
-rw-r--r--src/core/hle/kernel/init/init_slab_setup.cpp1
-rw-r--r--src/core/hle/kernel/k_page_table.cpp3
-rw-r--r--src/core/hle/kernel/k_process.cpp1
-rw-r--r--src/core/hle/result.h76
-rw-r--r--src/core/hle/service/am/applets/applet_error.cpp1
-rw-r--r--src/core/hle/service/am/applets/applet_general_backend.cpp2
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp5
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp5
-rw-r--r--src/core/hle/service/service.cpp1
-rw-r--r--src/core/hle/service/time/time_zone_manager.cpp1
-rw-r--r--src/video_core/engines/maxwell_dma.cpp1
-rw-r--r--src/video_core/engines/puller.cpp4
-rw-r--r--src/video_core/macro/macro_interpreter.cpp2
-rw-r--r--src/video_core/macro/macro_jit_x64.cpp1
-rw-r--r--src/video_core/renderer_opengl/gl_texture_cache.cpp2
-rw-r--r--src/video_core/renderer_opengl/renderer_opengl.cpp1
-rw-r--r--src/video_core/renderer_vulkan/vk_scheduler.cpp1
-rw-r--r--src/video_core/renderer_vulkan/vk_texture_cache.cpp1
-rw-r--r--src/video_core/textures/decoders.cpp3
-rw-r--r--src/yuzu/compatdb.cpp1
-rw-r--r--src/yuzu/configuration/configure_profile_manager.cpp67
-rw-r--r--src/yuzu/configuration/configure_profile_manager.h27
-rw-r--r--src/yuzu/configuration/configure_profile_manager.ui6
-rw-r--r--src/yuzu/main.cpp3
-rw-r--r--src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp1
-rw-r--r--src/yuzu_cmd/yuzu.cpp1
29 files changed, 202 insertions, 22 deletions
diff --git a/externals/microprofile/microprofileui.h b/externals/microprofile/microprofileui.h
index 1357a08fd..ca9fe7063 100644
--- a/externals/microprofile/microprofileui.h
+++ b/externals/microprofile/microprofileui.h
@@ -845,8 +845,6 @@ inline void MicroProfileDrawDetailedBars(uint32_t nWidth, uint32_t nHeight, int
845 MicroProfile& S = *MicroProfileGet(); 845 MicroProfile& S = *MicroProfileGet();
846 MP_DEBUG_DUMP_RANGE(); 846 MP_DEBUG_DUMP_RANGE();
847 int nY = nBaseY - UI.nOffsetY; 847 int nY = nBaseY - UI.nOffsetY;
848 int64_t nNumBoxes = 0;
849 int64_t nNumLines = 0;
850 848
851 uint32_t nFrameNext = (S.nFrameCurrent+1) % MICROPROFILE_MAX_FRAME_HISTORY; 849 uint32_t nFrameNext = (S.nFrameCurrent+1) % MICROPROFILE_MAX_FRAME_HISTORY;
852 MicroProfileFrameState* pFrameCurrent = &S.Frames[S.nFrameCurrent]; 850 MicroProfileFrameState* pFrameCurrent = &S.Frames[S.nFrameCurrent];
@@ -1149,7 +1147,6 @@ inline void MicroProfileDrawDetailedBars(uint32_t nWidth, uint32_t nHeight, int
1149 } 1147 }
1150 } 1148 }
1151#endif 1149#endif
1152 ++nNumBoxes;
1153 } 1150 }
1154 else 1151 else
1155 { 1152 {
@@ -1165,7 +1162,6 @@ inline void MicroProfileDrawDetailedBars(uint32_t nWidth, uint32_t nHeight, int
1165 } 1162 }
1166 nLinesDrawn[nStackPos] = nLineX; 1163 nLinesDrawn[nStackPos] = nLineX;
1167 MicroProfileDrawLineVertical(nLineX, fYStart + 0.5f, fYEnd + 0.5f, nColor|UI.nOpacityForeground); 1164 MicroProfileDrawLineVertical(nLineX, fYStart + 0.5f, fYEnd + 0.5f, nColor|UI.nOpacityForeground);
1168 ++nNumLines;
1169 } 1165 }
1170 } 1166 }
1171 nStackPos--; 1167 nStackPos--;
diff --git a/src/audio_core/renderer/performance/performance_manager.cpp b/src/audio_core/renderer/performance/performance_manager.cpp
index fd5873e1e..8aa0f5ed0 100644
--- a/src/audio_core/renderer/performance/performance_manager.cpp
+++ b/src/audio_core/renderer/performance/performance_manager.cpp
@@ -26,6 +26,7 @@ void PerformanceManager::CreateImpl(const size_t version) {
26 impl = std::make_unique< 26 impl = std::make_unique<
27 PerformanceManagerImpl<PerformanceVersion::Version1, PerformanceFrameHeaderVersion1, 27 PerformanceManagerImpl<PerformanceVersion::Version1, PerformanceFrameHeaderVersion1,
28 PerformanceEntryVersion1, PerformanceDetailVersion1>>(); 28 PerformanceEntryVersion1, PerformanceDetailVersion1>>();
29 break;
29 } 30 }
30} 31}
31 32
diff --git a/src/common/atomic_helpers.h b/src/common/atomic_helpers.h
index bef5015c1..aef3b66a4 100644
--- a/src/common/atomic_helpers.h
+++ b/src/common/atomic_helpers.h
@@ -156,6 +156,7 @@ AE_FORCEINLINE void compiler_fence(memory_order order) AE_NO_TSAN {
156 break; 156 break;
157 default: 157 default:
158 assert(false); 158 assert(false);
159 break;
159 } 160 }
160} 161}
161 162
diff --git a/src/core/hle/kernel/init/init_slab_setup.cpp b/src/core/hle/kernel/init/init_slab_setup.cpp
index bda098511..7b363eb1e 100644
--- a/src/core/hle/kernel/init/init_slab_setup.cpp
+++ b/src/core/hle/kernel/init/init_slab_setup.cpp
@@ -243,6 +243,7 @@ void InitializeSlabHeaps(Core::System& system, KMemoryLayout& memory_layout) {
243 // If we somehow get an invalid type, abort. 243 // If we somehow get an invalid type, abort.
244 default: 244 default:
245 ASSERT_MSG(false, "Unknown slab type: {}", slab_types[i]); 245 ASSERT_MSG(false, "Unknown slab type: {}", slab_types[i]);
246 break;
246 } 247 }
247 248
248 // If we've hit the end of a gap, free it. 249 // If we've hit the end of a gap, free it.
diff --git a/src/core/hle/kernel/k_page_table.cpp b/src/core/hle/kernel/k_page_table.cpp
index 5387bf5fe..612fc76fa 100644
--- a/src/core/hle/kernel/k_page_table.cpp
+++ b/src/core/hle/kernel/k_page_table.cpp
@@ -2301,6 +2301,7 @@ Result KPageTable::SetProcessMemoryPermission(VAddr addr, size_t size,
2301 break; 2301 break;
2302 default: 2302 default:
2303 ASSERT(false); 2303 ASSERT(false);
2304 break;
2304 } 2305 }
2305 } 2306 }
2306 2307
@@ -2803,6 +2804,7 @@ Result KPageTable::Operate(VAddr addr, size_t num_pages, const KPageGroup& page_
2803 break; 2804 break;
2804 default: 2805 default:
2805 ASSERT(false); 2806 ASSERT(false);
2807 break;
2806 } 2808 }
2807 2809
2808 addr += size; 2810 addr += size;
@@ -2838,6 +2840,7 @@ Result KPageTable::Operate(VAddr addr, size_t num_pages, KMemoryPermission perm,
2838 break; 2840 break;
2839 default: 2841 default:
2840 ASSERT(false); 2842 ASSERT(false);
2843 break;
2841 } 2844 }
2842 R_SUCCEED(); 2845 R_SUCCEED();
2843} 2846}
diff --git a/src/core/hle/kernel/k_process.cpp b/src/core/hle/kernel/k_process.cpp
index 55a9c5fae..d1dc62401 100644
--- a/src/core/hle/kernel/k_process.cpp
+++ b/src/core/hle/kernel/k_process.cpp
@@ -395,6 +395,7 @@ Result KProcess::LoadFromMetadata(const FileSys::ProgramMetadata& metadata, std:
395 395
396 default: 396 default:
397 ASSERT(false); 397 ASSERT(false);
398 break;
398 } 399 }
399 400
400 // Create TLS region 401 // Create TLS region
diff --git a/src/core/hle/result.h b/src/core/hle/result.h
index 56c990728..240f06689 100644
--- a/src/core/hle/result.h
+++ b/src/core/hle/result.h
@@ -28,30 +28,49 @@ enum class ErrorModule : u32 {
28 Loader = 9, 28 Loader = 9,
29 CMIF = 10, 29 CMIF = 10,
30 HIPC = 11, 30 HIPC = 11,
31 TMA = 12,
32 DMNT = 13,
33 GDS = 14,
31 PM = 15, 34 PM = 15,
32 NS = 16, 35 NS = 16,
36 BSDSockets = 17,
33 HTC = 18, 37 HTC = 18,
38 TSC = 19,
34 NCMContent = 20, 39 NCMContent = 20,
35 SM = 21, 40 SM = 21,
36 RO = 22, 41 RO = 22,
42 GC = 23,
37 SDMMC = 24, 43 SDMMC = 24,
38 OVLN = 25, 44 OVLN = 25,
39 SPL = 26, 45 SPL = 26,
46 Socket = 27,
47 HTCLOW = 29,
48 DDSF = 30,
49 HTCFS = 31,
50 Async = 32,
51 Util = 33,
52 TIPC = 35,
53 ANIF = 37,
40 ETHC = 100, 54 ETHC = 100,
41 I2C = 101, 55 I2C = 101,
42 GPIO = 102, 56 GPIO = 102,
43 UART = 103, 57 UART = 103,
58 CPAD = 104,
44 Settings = 105, 59 Settings = 105,
60 FTM = 106,
45 WLAN = 107, 61 WLAN = 107,
46 XCD = 108, 62 XCD = 108,
63 TMP451 = 109,
47 NIFM = 110, 64 NIFM = 110,
48 Hwopus = 111, 65 Hwopus = 111,
66 LSM6DS3 = 112,
49 Bluetooth = 113, 67 Bluetooth = 113,
50 VI = 114, 68 VI = 114,
51 NFP = 115, 69 NFP = 115,
52 Time = 116, 70 Time = 116,
53 FGM = 117, 71 FGM = 117,
54 OE = 118, 72 OE = 118,
73 BH1730FVC = 119,
55 PCIe = 120, 74 PCIe = 120,
56 Friends = 121, 75 Friends = 121,
57 BCAT = 122, 76 BCAT = 122,
@@ -65,7 +84,7 @@ enum class ErrorModule : u32 {
65 AHID = 130, 84 AHID = 130,
66 Qlaunch = 132, 85 Qlaunch = 132,
67 PCV = 133, 86 PCV = 133,
68 OMM = 134, 87 USBPD = 134,
69 BPC = 135, 88 BPC = 135,
70 PSM = 136, 89 PSM = 136,
71 NIM = 137, 90 NIM = 137,
@@ -75,18 +94,22 @@ enum class ErrorModule : u32 {
75 NSD = 141, 94 NSD = 141,
76 PCTL = 142, 95 PCTL = 142,
77 BTM = 143, 96 BTM = 143,
97 LA = 144,
78 ETicket = 145, 98 ETicket = 145,
79 NGC = 146, 99 NGC = 146,
80 ERPT = 147, 100 ERPT = 147,
81 APM = 148, 101 APM = 148,
102 CEC = 149,
82 Profiler = 150, 103 Profiler = 150,
83 ErrorUpload = 151, 104 ErrorUpload = 151,
105 LIDBE = 152,
84 Audio = 153, 106 Audio = 153,
85 NPNS = 154, 107 NPNS = 154,
86 NPNSHTTPSTREAM = 155, 108 NPNSHTTPSTREAM = 155,
87 ARP = 157, 109 ARP = 157,
88 SWKBD = 158, 110 SWKBD = 158,
89 BOOT = 159, 111 BOOT = 159,
112 NetDiag = 160,
90 NFCMifare = 161, 113 NFCMifare = 161,
91 UserlandAssert = 162, 114 UserlandAssert = 162,
92 Fatal = 163, 115 Fatal = 163,
@@ -94,17 +117,68 @@ enum class ErrorModule : u32 {
94 SPSM = 165, 117 SPSM = 165,
95 BGTC = 167, 118 BGTC = 167,
96 UserlandCrash = 168, 119 UserlandCrash = 168,
120 SASBUS = 169,
121 PI = 170,
122 AudioCtrl = 172,
123 LBL = 173,
124 JIT = 175,
125 HDCP = 176,
126 OMM = 177,
127 PDM = 178,
128 OLSC = 179,
97 SREPO = 180, 129 SREPO = 180,
98 Dauth = 181, 130 Dauth = 181,
131 STDFU = 182,
132 DBG = 183,
133 DHCPS = 186,
134 SPI = 187,
135 AVM = 188,
136 PWM = 189,
137 RTC = 191,
138 Regulator = 192,
139 LED = 193,
140 SIO = 195,
141 PCM = 196,
142 CLKRST = 197,
143 POWCTL = 198,
144 AudioOld = 201,
99 HID = 202, 145 HID = 202,
100 LDN = 203, 146 LDN = 203,
147 CS = 204,
101 Irsensor = 205, 148 Irsensor = 205,
102 Capture = 206, 149 Capture = 206,
103 Manu = 208, 150 Manu = 208,
104 ATK = 209, 151 ATK = 209,
152 WEB = 210,
153 LCS = 211,
105 GRC = 212, 154 GRC = 212,
155 Repair = 213,
156 Album = 214,
157 RID = 215,
106 Migration = 216, 158 Migration = 216,
107 MigrationLdcServ = 217, 159 MigrationLdcServ = 217,
160 HIDBUS = 218,
161 ENS = 219,
162 WebSocket = 223,
163 DCDMTP = 227,
164 PGL = 228,
165 Notification = 229,
166 INS = 230,
167 LP2P = 231,
168 RCD = 232,
169 LCM40607 = 233,
170 PRC = 235,
171 TMAHTC = 237,
172 ECTX = 238,
173 MNPP = 239,
174 HSHL = 240,
175 CAPMTP = 242,
176 DP2HDMI = 244,
177 Cradle = 245,
178 SProfile = 246,
179 NDRM = 250,
180 TSPM = 499,
181 DevMenu = 500,
108 GeneralWebApplet = 800, 182 GeneralWebApplet = 800,
109 WifiWebAuthApplet = 809, 183 WifiWebAuthApplet = 809,
110 WhitelistedApplet = 810, 184 WhitelistedApplet = 810,
diff --git a/src/core/hle/service/am/applets/applet_error.cpp b/src/core/hle/service/am/applets/applet_error.cpp
index fcf34bf7e..bae0d99a6 100644
--- a/src/core/hle/service/am/applets/applet_error.cpp
+++ b/src/core/hle/service/am/applets/applet_error.cpp
@@ -144,6 +144,7 @@ void Error::Initialize() {
144 break; 144 break;
145 default: 145 default:
146 UNIMPLEMENTED_MSG("Unimplemented LibAppletError mode={:02X}!", mode); 146 UNIMPLEMENTED_MSG("Unimplemented LibAppletError mode={:02X}!", mode);
147 break;
147 } 148 }
148} 149}
149 150
diff --git a/src/core/hle/service/am/applets/applet_general_backend.cpp b/src/core/hle/service/am/applets/applet_general_backend.cpp
index c34ef08b3..e50acdaf6 100644
--- a/src/core/hle/service/am/applets/applet_general_backend.cpp
+++ b/src/core/hle/service/am/applets/applet_general_backend.cpp
@@ -129,6 +129,7 @@ void Auth::Execute() {
129 } 129 }
130 default: 130 default:
131 unimplemented_log(); 131 unimplemented_log();
132 break;
132 } 133 }
133} 134}
134 135
@@ -192,6 +193,7 @@ void PhotoViewer::Execute() {
192 break; 193 break;
193 default: 194 default:
194 UNIMPLEMENTED_MSG("Unimplemented PhotoViewer applet mode={:02X}!", mode); 195 UNIMPLEMENTED_MSG("Unimplemented PhotoViewer applet mode={:02X}!", mode);
196 break;
195 } 197 }
196} 198}
197 199
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp b/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp
index ced57dfe6..b97813fbc 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp
@@ -300,11 +300,10 @@ Kernel::KEvent* nvhost_ctrl_gpu::QueryEvent(u32 event_id) {
300 return error_notifier_event; 300 return error_notifier_event;
301 case 2: 301 case 2:
302 return unknown_event; 302 return unknown_event;
303 default: { 303 default:
304 LOG_CRITICAL(Service_NVDRV, "Unknown Ctrl GPU Event {}", event_id); 304 LOG_CRITICAL(Service_NVDRV, "Unknown Ctrl GPU Event {}", event_id);
305 return nullptr;
305 } 306 }
306 }
307 return nullptr;
308} 307}
309 308
310} // namespace Service::Nvidia::Devices 309} // namespace Service::Nvidia::Devices
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp b/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp
index 45a759fa8..e123564c6 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp
@@ -364,11 +364,10 @@ Kernel::KEvent* nvhost_gpu::QueryEvent(u32 event_id) {
364 return sm_exception_breakpoint_pause_report_event; 364 return sm_exception_breakpoint_pause_report_event;
365 case 3: 365 case 3:
366 return error_notifier_event; 366 return error_notifier_event;
367 default: { 367 default:
368 LOG_CRITICAL(Service_NVDRV, "Unknown Ctrl GPU Event {}", event_id); 368 LOG_CRITICAL(Service_NVDRV, "Unknown Ctrl GPU Event {}", event_id);
369 return nullptr;
369 } 370 }
370 }
371 return nullptr;
372} 371}
373 372
374} // namespace Service::Nvidia::Devices 373} // namespace Service::Nvidia::Devices
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp
index 5ab41c0c4..0de67f1e1 100644
--- a/src/core/hle/service/service.cpp
+++ b/src/core/hle/service/service.cpp
@@ -228,6 +228,7 @@ Result ServiceFrameworkBase::HandleSyncRequest(Kernel::KServerSession& session,
228 } 228 }
229 229
230 UNIMPLEMENTED_MSG("command_type={}", ctx.GetCommandType()); 230 UNIMPLEMENTED_MSG("command_type={}", ctx.GetCommandType());
231 break;
231 } 232 }
232 233
233 // If emulation was shutdown, we are closing service threads, do not write the response back to 234 // If emulation was shutdown, we are closing service threads, do not write the response back to
diff --git a/src/core/hle/service/time/time_zone_manager.cpp b/src/core/hle/service/time/time_zone_manager.cpp
index 2aa675df9..f9ada7c93 100644
--- a/src/core/hle/service/time/time_zone_manager.cpp
+++ b/src/core/hle/service/time/time_zone_manager.cpp
@@ -280,6 +280,7 @@ static constexpr int TransitionTime(int year, Rule rule, int offset) {
280 } 280 }
281 default: 281 default:
282 ASSERT(false); 282 ASSERT(false);
283 break;
283 } 284 }
284 return value + rule.transition_time + offset; 285 return value + rule.transition_time + offset;
285} 286}
diff --git a/src/video_core/engines/maxwell_dma.cpp b/src/video_core/engines/maxwell_dma.cpp
index 54523a4b2..1bf6ca2dd 100644
--- a/src/video_core/engines/maxwell_dma.cpp
+++ b/src/video_core/engines/maxwell_dma.cpp
@@ -314,6 +314,7 @@ void MaxwellDMA::ReleaseSemaphore() {
314 } 314 }
315 default: 315 default:
316 ASSERT_MSG(false, "Unknown semaphore type: {}", static_cast<u32>(type.Value())); 316 ASSERT_MSG(false, "Unknown semaphore type: {}", static_cast<u32>(type.Value()));
317 break;
317 } 318 }
318} 319}
319 320
diff --git a/src/video_core/engines/puller.cpp b/src/video_core/engines/puller.cpp
index 3977bb0fb..4d2278811 100644
--- a/src/video_core/engines/puller.cpp
+++ b/src/video_core/engines/puller.cpp
@@ -50,6 +50,7 @@ void Puller::ProcessBindMethod(const MethodCall& method_call) {
50 break; 50 break;
51 default: 51 default:
52 UNIMPLEMENTED_MSG("Unimplemented engine {:04X}", engine_id); 52 UNIMPLEMENTED_MSG("Unimplemented engine {:04X}", engine_id);
53 break;
53 } 54 }
54} 55}
55 56
@@ -65,6 +66,7 @@ void Puller::ProcessFenceActionMethod() {
65 break; 66 break;
66 default: 67 default:
67 UNIMPLEMENTED_MSG("Unimplemented operation {}", regs.fence_action.op.Value()); 68 UNIMPLEMENTED_MSG("Unimplemented operation {}", regs.fence_action.op.Value());
69 break;
68 } 70 }
69} 71}
70 72
@@ -228,6 +230,7 @@ void Puller::CallEngineMethod(const MethodCall& method_call) {
228 break; 230 break;
229 default: 231 default:
230 UNIMPLEMENTED_MSG("Unimplemented engine"); 232 UNIMPLEMENTED_MSG("Unimplemented engine");
233 break;
231 } 234 }
232} 235}
233 236
@@ -254,6 +257,7 @@ void Puller::CallEngineMultiMethod(u32 method, u32 subchannel, const u32* base_s
254 break; 257 break;
255 default: 258 default:
256 UNIMPLEMENTED_MSG("Unimplemented engine"); 259 UNIMPLEMENTED_MSG("Unimplemented engine");
260 break;
257 } 261 }
258} 262}
259 263
diff --git a/src/video_core/macro/macro_interpreter.cpp b/src/video_core/macro/macro_interpreter.cpp
index c0d32c112..0d63495a9 100644
--- a/src/video_core/macro/macro_interpreter.cpp
+++ b/src/video_core/macro/macro_interpreter.cpp
@@ -201,6 +201,7 @@ bool MacroInterpreterImpl::Step(bool is_delay_slot) {
201 } 201 }
202 default: 202 default:
203 UNIMPLEMENTED_MSG("Unimplemented macro operation {}", opcode.operation.Value()); 203 UNIMPLEMENTED_MSG("Unimplemented macro operation {}", opcode.operation.Value());
204 break;
204 } 205 }
205 206
206 // An instruction with the Exit flag will not actually 207 // An instruction with the Exit flag will not actually
@@ -297,6 +298,7 @@ void MacroInterpreterImpl::ProcessResult(Macro::ResultOperation operation, u32 r
297 break; 298 break;
298 default: 299 default:
299 UNIMPLEMENTED_MSG("Unimplemented result operation {}", operation); 300 UNIMPLEMENTED_MSG("Unimplemented result operation {}", operation);
301 break;
300 } 302 }
301} 303}
302 304
diff --git a/src/video_core/macro/macro_jit_x64.cpp b/src/video_core/macro/macro_jit_x64.cpp
index 25c1ce798..7347cbd88 100644
--- a/src/video_core/macro/macro_jit_x64.cpp
+++ b/src/video_core/macro/macro_jit_x64.cpp
@@ -652,6 +652,7 @@ void MacroJITx64Impl::Compile_ProcessResult(Macro::ResultOperation operation, u3
652 break; 652 break;
653 default: 653 default:
654 UNIMPLEMENTED_MSG("Unimplemented macro operation {}", operation); 654 UNIMPLEMENTED_MSG("Unimplemented macro operation {}", operation);
655 break;
655 } 656 }
656} 657}
657 658
diff --git a/src/video_core/renderer_opengl/gl_texture_cache.cpp b/src/video_core/renderer_opengl/gl_texture_cache.cpp
index 99cd11d1e..9f7ce7414 100644
--- a/src/video_core/renderer_opengl/gl_texture_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_texture_cache.cpp
@@ -891,6 +891,7 @@ void Image::CopyBufferToImage(const VideoCommon::BufferImageCopy& copy, size_t b
891 break; 891 break;
892 default: 892 default:
893 ASSERT(false); 893 ASSERT(false);
894 break;
894 } 895 }
895} 896}
896 897
@@ -927,6 +928,7 @@ void Image::CopyImageToBuffer(const VideoCommon::BufferImageCopy& copy, size_t b
927 break; 928 break;
928 default: 929 default:
929 ASSERT(false); 930 ASSERT(false);
931 break;
930 } 932 }
931 // Compressed formats don't have a pixel format or type 933 // Compressed formats don't have a pixel format or type
932 const bool is_compressed = gl_format == GL_NONE; 934 const bool is_compressed = gl_format == GL_NONE;
diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp
index 8bd5eba7e..f29462f7c 100644
--- a/src/video_core/renderer_opengl/renderer_opengl.cpp
+++ b/src/video_core/renderer_opengl/renderer_opengl.cpp
@@ -340,6 +340,7 @@ void RendererOpenGL::ConfigureFramebufferTexture(TextureInfo& texture,
340 texture.gl_type = GL_UNSIGNED_INT_8_8_8_8_REV; 340 texture.gl_type = GL_UNSIGNED_INT_8_8_8_8_REV;
341 // UNIMPLEMENTED_MSG("Unknown framebuffer pixel format: {}", 341 // UNIMPLEMENTED_MSG("Unknown framebuffer pixel format: {}",
342 // static_cast<u32>(framebuffer.pixel_format)); 342 // static_cast<u32>(framebuffer.pixel_format));
343 break;
343 } 344 }
344 345
345 texture.resource.Release(); 346 texture.resource.Release();
diff --git a/src/video_core/renderer_vulkan/vk_scheduler.cpp b/src/video_core/renderer_vulkan/vk_scheduler.cpp
index 7934f2a51..4a7b633b7 100644
--- a/src/video_core/renderer_vulkan/vk_scheduler.cpp
+++ b/src/video_core/renderer_vulkan/vk_scheduler.cpp
@@ -221,6 +221,7 @@ void Scheduler::SubmitExecution(VkSemaphore signal_semaphore, VkSemaphore wait_s
221 [[fallthrough]]; 221 [[fallthrough]];
222 default: 222 default:
223 vk::Check(result); 223 vk::Check(result);
224 break;
224 } 225 }
225 }); 226 });
226 chunk->MarkSubmit(); 227 chunk->MarkSubmit();
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp
index 853b80d8a..a65bbeb1c 100644
--- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp
@@ -108,6 +108,7 @@ constexpr VkBorderColor ConvertBorderColor(const std::array<float, 4>& color) {
108 break; 108 break;
109 default: 109 default:
110 ASSERT_MSG(false, "Invalid surface type"); 110 ASSERT_MSG(false, "Invalid surface type");
111 break;
111 } 112 }
112 } 113 }
113 if (info.storage) { 114 if (info.storage) {
diff --git a/src/video_core/textures/decoders.cpp b/src/video_core/textures/decoders.cpp
index fd1a4b987..59120cd09 100644
--- a/src/video_core/textures/decoders.cpp
+++ b/src/video_core/textures/decoders.cpp
@@ -170,6 +170,7 @@ void Swizzle(std::span<u8> output, std::span<const u8> input, u32 bytes_per_pixe
170#undef BPP_CASE 170#undef BPP_CASE
171 default: 171 default:
172 ASSERT_MSG(false, "Invalid bytes_per_pixel={}", bytes_per_pixel); 172 ASSERT_MSG(false, "Invalid bytes_per_pixel={}", bytes_per_pixel);
173 break;
173 } 174 }
174} 175}
175 176
@@ -217,6 +218,7 @@ void SwizzleSubrect(std::span<u8> output, std::span<const u8> input, u32 bytes_p
217#undef BPP_CASE 218#undef BPP_CASE
218 default: 219 default:
219 ASSERT_MSG(false, "Invalid bytes_per_pixel={}", bytes_per_pixel); 220 ASSERT_MSG(false, "Invalid bytes_per_pixel={}", bytes_per_pixel);
221 break;
220 } 222 }
221} 223}
222 224
@@ -240,6 +242,7 @@ void UnswizzleSubrect(std::span<u8> output, std::span<const u8> input, u32 bytes
240#undef BPP_CASE 242#undef BPP_CASE
241 default: 243 default:
242 ASSERT_MSG(false, "Invalid bytes_per_pixel={}", bytes_per_pixel); 244 ASSERT_MSG(false, "Invalid bytes_per_pixel={}", bytes_per_pixel);
245 break;
243 } 246 }
244} 247}
245 248
diff --git a/src/yuzu/compatdb.cpp b/src/yuzu/compatdb.cpp
index b03e71248..05f49c0d2 100644
--- a/src/yuzu/compatdb.cpp
+++ b/src/yuzu/compatdb.cpp
@@ -126,6 +126,7 @@ void CompatDB::Submit() {
126 break; 126 break;
127 default: 127 default:
128 LOG_ERROR(Frontend, "Unexpected page: {}", currentId()); 128 LOG_ERROR(Frontend, "Unexpected page: {}", currentId());
129 break;
129 } 130 }
130} 131}
131 132
diff --git a/src/yuzu/configuration/configure_profile_manager.cpp b/src/yuzu/configuration/configure_profile_manager.cpp
index 5c0217ba8..a47089988 100644
--- a/src/yuzu/configuration/configure_profile_manager.cpp
+++ b/src/yuzu/configuration/configure_profile_manager.cpp
@@ -2,6 +2,9 @@
2// SPDX-License-Identifier: GPL-2.0-or-later 2// SPDX-License-Identifier: GPL-2.0-or-later
3 3
4#include <algorithm> 4#include <algorithm>
5#include <functional>
6#include <QDialog>
7#include <QDialogButtonBox>
5#include <QFileDialog> 8#include <QFileDialog>
6#include <QGraphicsItem> 9#include <QGraphicsItem>
7#include <QHeaderView> 10#include <QHeaderView>
@@ -108,9 +111,12 @@ ConfigureProfileManager::ConfigureProfileManager(const Core::System& system_, QW
108 111
109 connect(ui->pm_add, &QPushButton::clicked, this, &ConfigureProfileManager::AddUser); 112 connect(ui->pm_add, &QPushButton::clicked, this, &ConfigureProfileManager::AddUser);
110 connect(ui->pm_rename, &QPushButton::clicked, this, &ConfigureProfileManager::RenameUser); 113 connect(ui->pm_rename, &QPushButton::clicked, this, &ConfigureProfileManager::RenameUser);
111 connect(ui->pm_remove, &QPushButton::clicked, this, &ConfigureProfileManager::DeleteUser); 114 connect(ui->pm_remove, &QPushButton::clicked, this,
115 &ConfigureProfileManager::ConfirmDeleteUser);
112 connect(ui->pm_set_image, &QPushButton::clicked, this, &ConfigureProfileManager::SetUserImage); 116 connect(ui->pm_set_image, &QPushButton::clicked, this, &ConfigureProfileManager::SetUserImage);
113 117
118 confirm_dialog = new ConfigureProfileManagerDeleteDialog(this);
119
114 scene = new QGraphicsScene; 120 scene = new QGraphicsScene;
115 ui->current_user_icon->setScene(scene); 121 ui->current_user_icon->setScene(scene);
116 122
@@ -230,26 +236,23 @@ void ConfigureProfileManager::RenameUser() {
230 UpdateCurrentUser(); 236 UpdateCurrentUser();
231} 237}
232 238
233void ConfigureProfileManager::DeleteUser() { 239void ConfigureProfileManager::ConfirmDeleteUser() {
234 const auto index = tree_view->currentIndex().row(); 240 const auto index = tree_view->currentIndex().row();
235 const auto uuid = profile_manager->GetUser(index); 241 const auto uuid = profile_manager->GetUser(index);
236 ASSERT(uuid); 242 ASSERT(uuid);
237 const auto username = GetAccountUsername(*profile_manager, *uuid); 243 const auto username = GetAccountUsername(*profile_manager, *uuid);
238 244
239 const auto confirm = QMessageBox::question( 245 confirm_dialog->SetInfo(username, *uuid, [this, uuid]() { DeleteUser(*uuid); });
240 this, tr("Confirm Delete"), 246 confirm_dialog->show();
241 tr("You are about to delete user with name \"%1\". Are you sure?").arg(username)); 247}
242
243 if (confirm == QMessageBox::No) {
244 return;
245 }
246 248
249void ConfigureProfileManager::DeleteUser(const Common::UUID& uuid) {
247 if (Settings::values.current_user.GetValue() == tree_view->currentIndex().row()) { 250 if (Settings::values.current_user.GetValue() == tree_view->currentIndex().row()) {
248 Settings::values.current_user = 0; 251 Settings::values.current_user = 0;
249 } 252 }
250 UpdateCurrentUser(); 253 UpdateCurrentUser();
251 254
252 if (!profile_manager->RemoveUser(*uuid)) { 255 if (!profile_manager->RemoveUser(uuid)) {
253 return; 256 return;
254 } 257 }
255 258
@@ -319,3 +322,47 @@ void ConfigureProfileManager::SetUserImage() {
319 new QStandardItem{GetIcon(*uuid), FormatUserEntryText(username, *uuid)}); 322 new QStandardItem{GetIcon(*uuid), FormatUserEntryText(username, *uuid)});
320 UpdateCurrentUser(); 323 UpdateCurrentUser();
321} 324}
325
326ConfigureProfileManagerDeleteDialog::ConfigureProfileManagerDeleteDialog(QWidget* parent)
327 : QDialog{parent} {
328 auto dialog_vbox_layout = new QVBoxLayout(this);
329 dialog_button_box =
330 new QDialogButtonBox(QDialogButtonBox::Yes | QDialogButtonBox::No, Qt::Horizontal, parent);
331 auto label_message =
332 new QLabel(tr("Delete this user? All of the user's save data will be deleted."), this);
333 label_info = new QLabel(this);
334 auto dialog_hbox_layout_widget = new QWidget(this);
335 auto dialog_hbox_layout = new QHBoxLayout(dialog_hbox_layout_widget);
336 icon_scene = new QGraphicsScene(0, 0, 64, 64, this);
337 auto icon_view = new QGraphicsView(icon_scene, this);
338
339 dialog_hbox_layout_widget->setLayout(dialog_hbox_layout);
340 icon_view->setMaximumSize(64, 64);
341 icon_view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
342 icon_view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
343 this->setLayout(dialog_vbox_layout);
344 this->setWindowTitle(tr("Confirm Delete"));
345 this->setSizeGripEnabled(false);
346 dialog_vbox_layout->addWidget(label_message);
347 dialog_vbox_layout->addWidget(dialog_hbox_layout_widget);
348 dialog_vbox_layout->addWidget(dialog_button_box);
349 dialog_hbox_layout->addWidget(icon_view);
350 dialog_hbox_layout->addWidget(label_info);
351
352 connect(dialog_button_box, &QDialogButtonBox::rejected, this, [this]() { close(); });
353}
354
355ConfigureProfileManagerDeleteDialog::~ConfigureProfileManagerDeleteDialog() = default;
356
357void ConfigureProfileManagerDeleteDialog::SetInfo(const QString& username, const Common::UUID& uuid,
358 std::function<void()> accept_callback) {
359 label_info->setText(
360 tr("Name: %1\nUUID: %2").arg(username, QString::fromStdString(uuid.FormattedString())));
361 icon_scene->clear();
362 icon_scene->addPixmap(GetIcon(uuid));
363
364 connect(dialog_button_box, &QDialogButtonBox::accepted, this, [this, accept_callback]() {
365 close();
366 accept_callback();
367 });
368}
diff --git a/src/yuzu/configuration/configure_profile_manager.h b/src/yuzu/configuration/configure_profile_manager.h
index fe9033779..c4b1a334e 100644
--- a/src/yuzu/configuration/configure_profile_manager.h
+++ b/src/yuzu/configuration/configure_profile_manager.h
@@ -3,16 +3,24 @@
3 3
4#pragma once 4#pragma once
5 5
6#include <functional>
6#include <memory> 7#include <memory>
7 8
9#include <QDialog>
8#include <QList> 10#include <QList>
9#include <QWidget> 11#include <QWidget>
10 12
13namespace Common {
14struct UUID;
15}
16
11namespace Core { 17namespace Core {
12class System; 18class System;
13} 19}
14 20
15class QGraphicsScene; 21class QGraphicsScene;
22class QDialogButtonBox;
23class QLabel;
16class QStandardItem; 24class QStandardItem;
17class QStandardItemModel; 25class QStandardItemModel;
18class QTreeView; 26class QTreeView;
@@ -26,6 +34,20 @@ namespace Ui {
26class ConfigureProfileManager; 34class ConfigureProfileManager;
27} 35}
28 36
37class ConfigureProfileManagerDeleteDialog : public QDialog {
38public:
39 explicit ConfigureProfileManagerDeleteDialog(QWidget* parent);
40 ~ConfigureProfileManagerDeleteDialog();
41
42 void SetInfo(const QString& username, const Common::UUID& uuid,
43 std::function<void()> accept_callback);
44
45private:
46 QDialogButtonBox* dialog_button_box;
47 QGraphicsScene* icon_scene;
48 QLabel* label_info;
49};
50
29class ConfigureProfileManager : public QWidget { 51class ConfigureProfileManager : public QWidget {
30 Q_OBJECT 52 Q_OBJECT
31 53
@@ -47,7 +69,8 @@ private:
47 void SelectUser(const QModelIndex& index); 69 void SelectUser(const QModelIndex& index);
48 void AddUser(); 70 void AddUser();
49 void RenameUser(); 71 void RenameUser();
50 void DeleteUser(); 72 void ConfirmDeleteUser();
73 void DeleteUser(const Common::UUID& uuid);
51 void SetUserImage(); 74 void SetUserImage();
52 75
53 QVBoxLayout* layout; 76 QVBoxLayout* layout;
@@ -55,6 +78,8 @@ private:
55 QStandardItemModel* item_model; 78 QStandardItemModel* item_model;
56 QGraphicsScene* scene; 79 QGraphicsScene* scene;
57 80
81 ConfigureProfileManagerDeleteDialog* confirm_dialog;
82
58 std::vector<QList<QStandardItem*>> list_items; 83 std::vector<QList<QStandardItem*>> list_items;
59 84
60 std::unique_ptr<Ui::ConfigureProfileManager> ui; 85 std::unique_ptr<Ui::ConfigureProfileManager> ui;
diff --git a/src/yuzu/configuration/configure_profile_manager.ui b/src/yuzu/configuration/configure_profile_manager.ui
index cfe7478c8..bd6dea4f4 100644
--- a/src/yuzu/configuration/configure_profile_manager.ui
+++ b/src/yuzu/configuration/configure_profile_manager.ui
@@ -57,6 +57,12 @@
57 <height>48</height> 57 <height>48</height>
58 </size> 58 </size>
59 </property> 59 </property>
60 <property name="frameShape">
61 <enum>QFrame::NoFrame</enum>
62 </property>
63 <property name="frameShadow">
64 <enum>QFrame::Plain</enum>
65 </property>
60 <property name="verticalScrollBarPolicy"> 66 <property name="verticalScrollBarPolicy">
61 <enum>Qt::ScrollBarAlwaysOff</enum> 67 <enum>Qt::ScrollBarAlwaysOff</enum>
62 </property> 68 </property>
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp
index 72498f52a..7ee2302cc 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -1956,6 +1956,7 @@ void GMainWindow::OnGameListOpenFolder(u64 program_id, GameListOpenTarget target
1956 } 1956 }
1957 default: 1957 default:
1958 UNIMPLEMENTED(); 1958 UNIMPLEMENTED();
1959 break;
1959 } 1960 }
1960 1961
1961 const QString qpath = QString::fromStdString(Common::FS::PathToUTF8String(path)); 1962 const QString qpath = QString::fromStdString(Common::FS::PathToUTF8String(path));
@@ -3199,6 +3200,7 @@ void GMainWindow::OnToggleGpuAccuracy() {
3199 case Settings::GPUAccuracy::Extreme: 3200 case Settings::GPUAccuracy::Extreme:
3200 default: { 3201 default: {
3201 Settings::values.gpu_accuracy.SetValue(Settings::GPUAccuracy::High); 3202 Settings::values.gpu_accuracy.SetValue(Settings::GPUAccuracy::High);
3203 break;
3202 } 3204 }
3203 } 3205 }
3204 3206
@@ -3531,6 +3533,7 @@ void GMainWindow::UpdateGPUAccuracyButton() {
3531 default: { 3533 default: {
3532 gpu_accuracy_button->setText(tr("GPU ERROR")); 3534 gpu_accuracy_button->setText(tr("GPU ERROR"));
3533 gpu_accuracy_button->setChecked(true); 3535 gpu_accuracy_button->setChecked(true);
3536 break;
3534 } 3537 }
3535 } 3538 }
3536} 3539}
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp
index 65455c86e..25948328c 100644
--- a/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp
+++ b/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp
@@ -84,6 +84,7 @@ EmuWindow_SDL2_VK::EmuWindow_SDL2_VK(InputCommon::InputSubsystem* input_subsyste
84 default: 84 default:
85 LOG_CRITICAL(Frontend, "Window manager subsystem not implemented"); 85 LOG_CRITICAL(Frontend, "Window manager subsystem not implemented");
86 std::exit(EXIT_FAILURE); 86 std::exit(EXIT_FAILURE);
87 break;
87 } 88 }
88 89
89 OnResize(); 90 OnResize();
diff --git a/src/yuzu_cmd/yuzu.cpp b/src/yuzu_cmd/yuzu.cpp
index e16f79eb4..dfe5a30ea 100644
--- a/src/yuzu_cmd/yuzu.cpp
+++ b/src/yuzu_cmd/yuzu.cpp
@@ -351,6 +351,7 @@ int main(int argc, char** argv) {
351 "additional help.\n\nError Code: {:04X}-{:04X}\nError Description: {}", 351 "additional help.\n\nError Code: {:04X}-{:04X}\nError Description: {}",
352 loader_id, error_id, static_cast<Loader::ResultStatus>(error_id)); 352 loader_id, error_id, static_cast<Loader::ResultStatus>(error_id));
353 } 353 }
354 break;
354 } 355 }
355 356
356 system.TelemetrySession().AddField(Common::Telemetry::FieldType::App, "Frontend", "SDL"); 357 system.TelemetrySession().AddField(Common::Telemetry::FieldType::App, "Frontend", "SDL");