diff options
| m--------- | externals/dynarmic | 0 | ||||
| -rw-r--r-- | src/common/settings.cpp | 12 | ||||
| -rw-r--r-- | src/common/settings.h | 13 | ||||
| -rw-r--r-- | src/core/hle/service/nvflinger/nvflinger.cpp | 8 | ||||
| -rw-r--r-- | src/core/hle/service/nvflinger/nvflinger.h | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics.ui | 15 | 
6 files changed, 40 insertions, 10 deletions
| diff --git a/externals/dynarmic b/externals/dynarmic -Subproject a1cbea7948372989218a4e6159a95998d65876a +Subproject befe547d5631024a70d81d2ccee808bbfcb3854 diff --git a/src/common/settings.cpp b/src/common/settings.cpp index 1638b79f5..b1a2aa8b2 100644 --- a/src/common/settings.cpp +++ b/src/common/settings.cpp @@ -129,6 +129,10 @@ void UpdateRescalingInfo() {          info.up_scale = 1;          info.down_shift = 0;          break; +    case ResolutionSetup::Res3_2X: +        info.up_scale = 3; +        info.down_shift = 1; +        break;      case ResolutionSetup::Res2X:          info.up_scale = 2;          info.down_shift = 0; @@ -149,6 +153,14 @@ void UpdateRescalingInfo() {          info.up_scale = 6;          info.down_shift = 0;          break; +    case ResolutionSetup::Res7X: +        info.up_scale = 7; +        info.down_shift = 0; +        break; +    case ResolutionSetup::Res8X: +        info.up_scale = 8; +        info.down_shift = 0; +        break;      default:          ASSERT(false);          info.up_scale = 1; diff --git a/src/common/settings.h b/src/common/settings.h index a457e3f23..80b2eeabc 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -56,11 +56,14 @@ enum class ResolutionSetup : u32 {      Res1_2X = 0,      Res3_4X = 1,      Res1X = 2, -    Res2X = 3, -    Res3X = 4, -    Res4X = 5, -    Res5X = 6, -    Res6X = 7, +    Res3_2X = 3, +    Res2X = 4, +    Res3X = 5, +    Res4X = 6, +    Res5X = 7, +    Res6X = 8, +    Res7X = 9, +    Res8X = 10,  };  enum class ScalingFilter : u32 { diff --git a/src/core/hle/service/nvflinger/nvflinger.cpp b/src/core/hle/service/nvflinger/nvflinger.cpp index d1cbadde4..f4416f5b2 100644 --- a/src/core/hle/service/nvflinger/nvflinger.cpp +++ b/src/core/hle/service/nvflinger/nvflinger.cpp @@ -312,8 +312,6 @@ void NVFlinger::Compose() {  }  s64 NVFlinger::GetNextTicks() const { -    static constexpr s64 max_hertz = 120LL; -      const auto& settings = Settings::values;      auto speed_scale = 1.f;      if (settings.use_multi_core.GetValue()) { @@ -327,9 +325,11 @@ s64 NVFlinger::GetNextTicks() const {          }      } -    const auto next_ticks = ((1000000000 * (1LL << swap_interval)) / max_hertz); +    // As an extension, treat nonpositive swap interval as framerate multiplier. +    const f32 effective_fps = swap_interval <= 0 ? 120.f * static_cast<f32>(1 - swap_interval) +                                                 : 60.f / static_cast<f32>(swap_interval); -    return static_cast<s64>(speed_scale * static_cast<float>(next_ticks)); +    return static_cast<s64>(speed_scale * (1000000000.f / effective_fps));  }  } // namespace Service::NVFlinger diff --git a/src/core/hle/service/nvflinger/nvflinger.h b/src/core/hle/service/nvflinger/nvflinger.h index 9b22397db..3828cf272 100644 --- a/src/core/hle/service/nvflinger/nvflinger.h +++ b/src/core/hle/service/nvflinger/nvflinger.h @@ -133,7 +133,7 @@ private:      /// layers.      u32 next_buffer_queue_id = 1; -    u32 swap_interval = 1; +    s32 swap_interval = 1;      /// Event that handles screen composition.      std::shared_ptr<Core::Timing::EventType> multi_composition_event; diff --git a/src/yuzu/configuration/configure_graphics.ui b/src/yuzu/configuration/configure_graphics.ui index aa02cc63c..bb9910a53 100644 --- a/src/yuzu/configuration/configure_graphics.ui +++ b/src/yuzu/configuration/configure_graphics.ui @@ -366,6 +366,11 @@               </item>               <item>                <property name="text"> +                  <string>1.5X (1080p/1620p) [EXPERIMENTAL]</string> +              </property> +             </item> +             <item> +              <property name="text">                 <string>2X (1440p/2160p)</string>                </property>               </item> @@ -389,6 +394,16 @@                 <string>6X (4320p/6480p)</string>                </property>               </item> +             <item> +              <property name="text"> +               <string>7X (5040p/7560p)</string> +              </property> +             </item> +             <item> +              <property name="text"> +               <string>8X (5760p/8640p)</string> +              </property> +             </item>              </widget>             </item>            </layout> | 
