【问题标题】:SharpDX fixed time step issueSharpDX 固定时间步长问题
【发布时间】:2016-01-15 05:19:04
【问题描述】:

我正在使用 SharpDX 2.5.0 并且我有一个游戏类,我尝试禁用固定时间步长,但它似乎不起作用,我仍然获得 59-60 FPS。我只是在画一个犹他茶壶,所以我很确定它必须与更多(比如 1000)FPS 一起工作。这是我的工作:

    protected override void LoadContent()
    {
        // ...

        // Disabling fix time step.
        this.IsFixedTimeStep = false;

        // ...

        base.LoadContent();
    }

我忘记了什么吗?我是否必须以某种方式应用此更改?或者我是在错误的地方做的(我也试过在其他地方做,但没有成功)?感谢您的回答:

穆阿迪布

【问题讨论】:

    标签: c# sharpdx


    【解决方案1】:

    您需要同时禁用 vsync 和固定时间步长,尝试将其添加到游戏构造函数中:

    // GraphicsDeviceManager is mandatory for a Toolkit Game
    _graphicsDeviceManager = new GraphicsDeviceManager(this);
    // disable vsync
    _graphicsDeviceManager.SynchronizeWithVerticalRetrace = false;
    // disable fixed timestep
    this.IsFixedTimeStep = false;
    

    【讨论】:

    • 我可以确认此代码需要在构造函数中。放在 Initialize 方法中时不起作用。
    【解决方案2】:

    您是否也尝试过禁用垂直同步?如果启用了 vsync 并且您的显示器以 60Hz 运行(很可能),那么您也会看到这种行为。我不确定Game 类,但我通常在创建设备时在PresentationParameters 中进行。

    new PresentParameters(width, height) {
        PresentationInterval = PresentInterval.Immediate
    }
    

    “立即”表示present不会等待监视器刷新。

    这是假设 D3D9,您使用的是哪个版本的 DirectX?

    【讨论】:

    • 现在它变得更好了,但它仍然无法正常工作。现在我得到了类似 170-180 FPS 的结果,即使我在 Draw 和 Update 方法中根本不做任何事情,只是计算帧数。设置 VSync 似乎不会影响 FPS 速率。我正在尝试创建一个 D3D11 应用程序。我也尝试在使用 D3D11 的 SharpDX 代码示例中做同样的事情并遇到同样的问题。请注意,在使用 D3D9 代码示例时,我不会遇到这种低 FPS 问题。很高兴看到一个工作代码,其中类派生自 SharpDX.Toolkit.Game 并且 FPS 很高。
    • 尝试在代码示例 Direct3D11.MiniTri 中计算帧数。
    • @Muad'Dib 您是否尝试过运行分析器来查看哪种方法花费的时间最多?这是在 2012 Professional 及更高版本的 Visual Studio 中内置的,或者有几种替代方案(有些是免费的,搜索“.NET free profiler”)。
    • Profiling 更适合 CPU 性能测量,我有点想通了,这不再是与 SharpDX 相关的问题,而是与我的显卡 (AMD Radeon HD 7670M) 驱动程序有关和/或一些节能优化或类似的东西,因为如果我切换到我的其他视频卡(Intel HD Graphics 4000),我会得到类似 2000 FPS 的东西(它实际上并没有抗锯齿)。以这样的方式实现这样的优化非常烦人,不能简单地通过取消选中来禁用它......
    • 没错,分析器可能会告诉您系统在Present 调用上等待了很长时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多