فهرست منبع

Merge pull request #2983 from lioncash/fallthrough

gl_shader_decompiler/vk_shader_decompiler: Resolve implicit fallthrough cases
Fernando Sahmkow 6 سال پیش
والد
کامیت
7ecf9f7228
2فایلهای تغییر یافته به همراه6 افزوده شده و 0 حذف شده
  1. 3 0
      src/video_core/renderer_opengl/gl_shader_decompiler.cpp
  2. 3 0
      src/video_core/renderer_vulkan/vk_shader_decompiler.cpp

+ 3 - 0
src/video_core/renderer_opengl/gl_shader_decompiler.cpp

@@ -2314,10 +2314,13 @@ public:
             switch (index) {
             switch (index) {
             case Tegra::Shader::Pred::NeverExecute:
             case Tegra::Shader::Pred::NeverExecute:
                 target = "false";
                 target = "false";
+                break;
             case Tegra::Shader::Pred::UnusedIndex:
             case Tegra::Shader::Pred::UnusedIndex:
                 target = "true";
                 target = "true";
+                break;
             default:
             default:
                 target = decomp.GetPredicate(index);
                 target = decomp.GetPredicate(index);
+                break;
             }
             }
         } else if (const auto flag = std::get_if<InternalFlagNode>(&*cc)) {
         } else if (const auto flag = std::get_if<InternalFlagNode>(&*cc)) {
             target = decomp.GetInternalFlag(flag->GetFlag());
             target = decomp.GetInternalFlag(flag->GetFlag());

+ 3 - 0
src/video_core/renderer_vulkan/vk_shader_decompiler.cpp

@@ -1682,10 +1682,13 @@ public:
             switch (index) {
             switch (index) {
             case Tegra::Shader::Pred::NeverExecute:
             case Tegra::Shader::Pred::NeverExecute:
                 target = decomp.v_false;
                 target = decomp.v_false;
+                break;
             case Tegra::Shader::Pred::UnusedIndex:
             case Tegra::Shader::Pred::UnusedIndex:
                 target = decomp.v_true;
                 target = decomp.v_true;
+                break;
             default:
             default:
                 target = decomp.predicates.at(index);
                 target = decomp.predicates.at(index);
+                break;
             }
             }
         } else if (const auto flag = std::get_if<InternalFlagNode>(&*cc)) {
         } else if (const auto flag = std::get_if<InternalFlagNode>(&*cc)) {
             target = decomp.internal_flags.at(static_cast<u32>(flag->GetFlag()));
             target = decomp.internal_flags.at(static_cast<u32>(flag->GetFlag()));