diff --git a/rpcs3/Emu/Cell/Modules/cellVdec.cpp b/rpcs3/Emu/Cell/Modules/cellVdec.cpp index 749facb6b7..58e969fb66 100644 --- a/rpcs3/Emu/Cell/Modules/cellVdec.cpp +++ b/rpcs3/Emu/Cell/Modules/cellVdec.cpp @@ -851,6 +851,7 @@ error_code cellVdecGetPicture(u32 handle, vm::cptr format, vm { case AV_PIX_FMT_YUVJ420P: cellVdec.error("cellVdecGetPicture(): experimental AVPixelFormat (%d). This may cause suboptimal video quality.", frame->format); + [[fallthrough]]; case AV_PIX_FMT_YUV420P: in_f = alpha_plane ? AV_PIX_FMT_YUVA420P : static_cast(frame->format); break; diff --git a/rpcs3/Emu/Cell/SPUThread.cpp b/rpcs3/Emu/Cell/SPUThread.cpp index f07c76bd53..55693987ce 100644 --- a/rpcs3/Emu/Cell/SPUThread.cpp +++ b/rpcs3/Emu/Cell/SPUThread.cpp @@ -2130,7 +2130,7 @@ bool spu_thread::process_mfc_cmd() break; } - // Fallthrough + [[fallthrough]]; } case MFC_PUT_CMD: case MFC_PUTB_CMD: diff --git a/rpcs3/Emu/RSX/Common/FragmentProgramDecompiler.cpp b/rpcs3/Emu/RSX/Common/FragmentProgramDecompiler.cpp index d923913d96..abb8b86bea 100644 --- a/rpcs3/Emu/RSX/Common/FragmentProgramDecompiler.cpp +++ b/rpcs3/Emu/RSX/Common/FragmentProgramDecompiler.cpp @@ -85,6 +85,7 @@ void FragmentProgramDecompiler::SetDst(std::string code, u32 flags) // NOTE: Sometimes varying inputs from VS are out of range so do not exempt any input types, unless fp16 (Naruto UNS) if (dst.fp16 && src0.fp16 && src0.reg_type == RSX_FP_REGISTER_TYPE_TEMP) break; + [[fallthrough]]; default: { // fp16 precsion flag on f32 register; ignore @@ -942,6 +943,7 @@ bool FragmentProgramDecompiler::handle_tex_srb(u32 opcode) //Untested, should be x2d followed by TEX AddX2d(); AddCode(Format("x2d = $0.xyxy + $1.xxxx * $2.xzxz + $1.yyyy * $2.ywyw;", true)); + [[fallthrough]]; case RSX_FP_OPCODE_TEX: AddTex(); switch (m_prog.get_texture_dimension(dst.tex_num)) @@ -974,6 +976,7 @@ bool FragmentProgramDecompiler::handle_tex_srb(u32 opcode) //Untested, should be x2d followed by TXP AddX2d(); AddCode(Format("x2d = $0.xyxy + $1.xxxx * $2.xzxz + $1.yyyy * $2.ywyw;", true)); + [[fallthrough]]; case RSX_FP_OPCODE_TXP: AddTex(); switch (m_prog.get_texture_dimension(dst.tex_num)) diff --git a/rpcs3/Emu/RSX/Common/ProgramStateCache.cpp b/rpcs3/Emu/RSX/Common/ProgramStateCache.cpp index 7338f99413..185417f7b6 100644 --- a/rpcs3/Emu/RSX/Common/ProgramStateCache.cpp +++ b/rpcs3/Emu/RSX/Common/ProgramStateCache.cpp @@ -104,12 +104,12 @@ vertex_program_utils::vertex_program_metadata vertex_program_utils::analyse_vert { d0.HEX = instruction._u32[0]; static_jump = (d0.cond == 0x7); - // Fall through + [[fallthrough]]; } case RSX_SCA_OPCODE_BRB: { function_call = false; - // Fall through + [[fallthrough]]; } case RSX_SCA_OPCODE_CAL: case RSX_SCA_OPCODE_CLI: diff --git a/rpcs3/Emu/RSX/Common/texture_cache.h b/rpcs3/Emu/RSX/Common/texture_cache.h index 66805420bf..a185ab57d3 100644 --- a/rpcs3/Emu/RSX/Common/texture_cache.h +++ b/rpcs3/Emu/RSX/Common/texture_cache.h @@ -1821,7 +1821,7 @@ namespace rsx case rsx::texture_upload_context::shader_read: if (!result.image_handle) break; - // Conditional fallthrough + [[fallthrough]]; default: return result; } diff --git a/rpcs3/Emu/RSX/GL/GLDraw.cpp b/rpcs3/Emu/RSX/GL/GLDraw.cpp index ccbcb7732c..2b3521c1df 100644 --- a/rpcs3/Emu/RSX/GL/GLDraw.cpp +++ b/rpcs3/Emu/RSX/GL/GLDraw.cpp @@ -43,12 +43,14 @@ namespace gl // Note : maybe add is signed on gl case rsx::blend_equation::add_signed: rsx_log.trace("blend equation add_signed used. Emulating using FUNC_ADD"); + [[fallthrough]]; case rsx::blend_equation::add: return GL_FUNC_ADD; case rsx::blend_equation::min: return GL_MIN; case rsx::blend_equation::max: return GL_MAX; case rsx::blend_equation::substract: return GL_FUNC_SUBTRACT; case rsx::blend_equation::reverse_substract_signed: rsx_log.trace("blend equation reverse_subtract_signed used. Emulating using FUNC_REVERSE_SUBTRACT"); + [[fallthrough]]; case rsx::blend_equation::reverse_substract: return GL_FUNC_REVERSE_SUBTRACT; case rsx::blend_equation::reverse_add_signed: default: diff --git a/rpcs3/Emu/RSX/GL/GLGSRender.cpp b/rpcs3/Emu/RSX/GL/GLGSRender.cpp index 998125fdd5..6e90bcccaf 100644 --- a/rpcs3/Emu/RSX/GL/GLGSRender.cpp +++ b/rpcs3/Emu/RSX/GL/GLGSRender.cpp @@ -549,7 +549,7 @@ void GLGSRender::clear_surface(u32 arg) case rsx::surface_color_format::g8b8: { colormask = rsx::get_g8b8_r8g8_colormask(colormask); - // Fall through + [[fallthrough]]; } default: { diff --git a/rpcs3/Emu/RSX/GL/GLHelpers.h b/rpcs3/Emu/RSX/GL/GLHelpers.h index 43895806f6..8354e2f159 100644 --- a/rpcs3/Emu/RSX/GL/GLHelpers.h +++ b/rpcs3/Emu/RSX/GL/GLHelpers.h @@ -366,6 +366,7 @@ namespace gl { default: rsx_log.error("gl::fence sync returned unknown error 0x%X", err); + [[fallthrough]]; case GL_ALREADY_SIGNALED: case GL_CONDITION_SATISFIED: done = true; diff --git a/rpcs3/Emu/RSX/GL/GLTexture.cpp b/rpcs3/Emu/RSX/GL/GLTexture.cpp index d8754adbcc..c190571741 100644 --- a/rpcs3/Emu/RSX/GL/GLTexture.cpp +++ b/rpcs3/Emu/RSX/GL/GLTexture.cpp @@ -586,6 +586,7 @@ namespace gl { default: rsx_log.error("Unknown remap function 0x%X", remap_lookup[channel]); + [[fallthrough]]; case CELL_GCM_TEXTURE_REMAP_REMAP: remap_values[channel] = swizzle_remap[remap_inputs[channel]]; break; diff --git a/rpcs3/Emu/RSX/Overlays/overlay_perf_metrics.cpp b/rpcs3/Emu/RSX/Overlays/overlay_perf_metrics.cpp index feb3000931..7d218b0e8b 100644 --- a/rpcs3/Emu/RSX/Overlays/overlay_perf_metrics.cpp +++ b/rpcs3/Emu/RSX/Overlays/overlay_perf_metrics.cpp @@ -450,7 +450,7 @@ namespace rsx total_threads = CPUStats::get_thread_count(); - // fallthrough + [[fallthrough]]; } case detail_level::medium: { @@ -473,14 +473,14 @@ namespace rsx spu_usage = std::clamp(cpu_usage * spu_cycles / total_cycles, 0.f, 100.f); rsx_usage = std::clamp(cpu_usage * rsx_cycles / total_cycles, 0.f, 100.f); - // fallthrough + [[fallthrough]]; } case detail_level::low: { if (cpu_usage < 0.) cpu_usage = static_cast(m_cpu_stats.get_usage()); - // fallthrough + [[fallthrough]]; } case detail_level::minimal: { diff --git a/rpcs3/Emu/RSX/Overlays/overlay_save_dialog.cpp b/rpcs3/Emu/RSX/Overlays/overlay_save_dialog.cpp index 6e49502bdf..d7a71f4f0c 100644 --- a/rpcs3/Emu/RSX/Overlays/overlay_save_dialog.cpp +++ b/rpcs3/Emu/RSX/Overlays/overlay_save_dialog.cpp @@ -120,7 +120,7 @@ namespace rsx if (m_no_saves) break; return_code = m_list->get_selected_index(); - // Fall through + [[fallthrough]]; case pad_button::circle: close(true, true); break; diff --git a/rpcs3/Emu/RSX/RSXThread.cpp b/rpcs3/Emu/RSX/RSXThread.cpp index e96343ba8c..f9513977a6 100644 --- a/rpcs3/Emu/RSX/RSXThread.cpp +++ b/rpcs3/Emu/RSX/RSXThread.cpp @@ -703,6 +703,7 @@ namespace rsx { default: rsx_log.error("bad clip plane control (0x%x)", static_cast(clip_plane_control[index])); + [[fallthrough]]; case rsx::user_clip_plane_op::disable: clip_enabled_flags[index] = 0; diff --git a/rpcs3/Emu/RSX/VK/VKGSRender.cpp b/rpcs3/Emu/RSX/VK/VKGSRender.cpp index 1bcb88f5e9..9f6cac38b9 100644 --- a/rpcs3/Emu/RSX/VK/VKGSRender.cpp +++ b/rpcs3/Emu/RSX/VK/VKGSRender.cpp @@ -162,11 +162,13 @@ namespace vk { case rsx::blend_equation::add_signed: rsx_log.trace("blend equation add_signed used. Emulating using FUNC_ADD"); + [[fallthrough]]; case rsx::blend_equation::add: return VK_BLEND_OP_ADD; case rsx::blend_equation::substract: return VK_BLEND_OP_SUBTRACT; case rsx::blend_equation::reverse_substract_signed: rsx_log.trace("blend equation reverse_subtract_signed used. Emulating using FUNC_REVERSE_SUBTRACT"); + [[fallthrough]]; case rsx::blend_equation::reverse_substract: return VK_BLEND_OP_REVERSE_SUBTRACT; case rsx::blend_equation::min: return VK_BLEND_OP_MIN; case rsx::blend_equation::max: return VK_BLEND_OP_MAX; diff --git a/rpcs3/Emu/RSX/rsx_utils.h b/rpcs3/Emu/RSX/rsx_utils.h index b75fe3798a..71c08f1754 100644 --- a/rpcs3/Emu/RSX/rsx_utils.h +++ b/rpcs3/Emu/RSX/rsx_utils.h @@ -157,6 +157,7 @@ namespace rsx { default: rsx_log.error("Invalid AV format 0x%x", format); + [[fallthrough]]; case 0: // CELL_VIDEO_OUT_BUFFER_COLOR_FORMAT_X8R8G8B8: case 1: // CELL_VIDEO_OUT_BUFFER_COLOR_FORMAT_X8B8G8R8: return CELL_GCM_TEXTURE_A8R8G8B8; @@ -171,6 +172,7 @@ namespace rsx { default: rsx_log.error("Invalid AV format 0x%x", format); + [[fallthrough]]; case 0: // CELL_VIDEO_OUT_BUFFER_COLOR_FORMAT_X8R8G8B8: case 1: // CELL_VIDEO_OUT_BUFFER_COLOR_FORMAT_X8B8G8R8: return 4; diff --git a/rpcs3/rpcs3qt/rsx_debugger.cpp b/rpcs3/rpcs3qt/rsx_debugger.cpp index a01cf440b1..ca12772648 100644 --- a/rpcs3/rpcs3qt/rsx_debugger.cpp +++ b/rpcs3/rpcs3qt/rsx_debugger.cpp @@ -809,6 +809,7 @@ const char* rsx_debugger::ParseGCMEnum(u32 value, u32 type) case a + m * 14: \ case a + m * 15: \ index = (cmd - a) / m; \ + [[fallthrough]]; \ case a \ QString rsx_debugger::DisAsmCommand(u32 cmd, u32 count, u32 ioAddr)