DirectX 11 SwapChain ::当前问题

|| 我在这里遇到了很奇怪的问题。 我正在使用DirectX 11制作自己的游戏框架/引擎,并且在我尝试实施视锥剔除之前,它一直运行良好,这给了我真正奇怪的帧速率问题。 我已经简化了这个问题,因此无需我进行任何平截头寸剔除就可以解决。现在,我在屏幕上渲染了250个模型,调试时为70 fps。我已经这样做,所以如果我按住按钮H,它将跳过我的应用程序::: Render中模型的渲染,但是如果我这样做然后又放开按钮,则之后的帧率最高可达40甚至大约4 fps。分析向我展示了它的SwapChain :: Present,突然之间,它花费的时间比以往任何时候都要长。 在Release中,这是同样的问题,只有在我将调试器附加到btw的情况下,才会发生这种情况。我自己无法真正弄清楚这一点。 尝试重建和重新启动。 我现在的功能:
m_pSwapChain->Present( 0, 0);
我的Application :: Render函数:
void CApplication::Render() const
{
    CD3D::Instance()->BeginRender();

    //Render 3d
    if ( !CInputSystem::Instance()->IsKeyPressed(\'H\'))
    {
        std::vector<CPlanet*>::const_iterator it;
        for (it = m_Planets.begin(); it != m_Planets.end(); ++it)
        {
            (*it)->Render();
        }
    }
    // Render 2d
    m_pScreenSprite->Render();

    CTextSystem::Instance()->Render2D();
    CD3D::Instance()->EndRender();
}
这是在按H停止渲染模型之前,我的分析外观:
[Profiler] BeginRender: 2.830984218768823e-005
[Profiler] Models::Render: 1.4456089627755692e-005
[Profiler] Text|Sprite ::Render: 0.00015811348030357787
[Profiler] EndRender: 0.00018853150222864715
[Profiler] CApplication::Render(): 0.00067612335863149022
我按下H秒钟然后放开它,以便再次渲染模型:
[Profiler] BeginRender: 2.4996988314660883e-005
[Profiler] Models::Render: 0.0091422720154198285
[Profiler] Text|Sprite ::Render: 0.00011655222262378027
[Profiler] EndRender: 0.2590757137694254
[Profiler] CApplication::Render(): 0.26870557764124803
我也尝试过,而不是按H时不渲染模型,而是按C时创建了一个具有相同效果的新模型。因此,如果在运行时呈现的模型数量发生任何变化,我的帧率就会发疯。 如果我运行Fraps,这不会发生(将捕获行为,以便您可以看到)。 Duno如果这是任何线索。 固定!看下面的评论     
已邀请:
        最后我可以回答我自己的问题(必须等待8个小时) 问题解决了,我应该早点想到FML。当我将驱动程序升级到11天前发布的驱动程序时,现在可以正常工作(我上次仅在1-2个月前将其升级)。现在工作正常,fpsdrops在其他游戏中也消失了     

要回复问题请先登录注册